【发布时间】:2020-03-18 09:40:34
【问题描述】:
在我的项目中,我有一些 scss,并且使用 webpack,我可以正确构建和捆绑所有内容。 在我的 scss 文件中,我有一些 url 来获取一些图像。像这样:
background-image: url(../img/example.svg),
这要归功于 webpack 中的这些加载器:file-loader、sass-loader、css-loader 和 minicssextractplugin。 这是有效的 webpack 配置:
{
module: {
rules: [
{
test: /\.s?[ac]ss$/,
exclude: /node_modules/,
use: [
MiniCssExtractPlugin.loader,
{
loader: 'css-loader',
},
{
loader: 'sass-loader',
}
],
},
{
test: /\.(svg)(\?v=\d+\.\d+\.\d+)?$/,
use: [
{
loader: 'file-loader',
options: {
limit: 8192
},
}
]
},
]
},
plugins: [
new MiniCssExtractPlugin({
filename: '[name].css'
})
]
}
我的问题是在输出文件夹 (dist) 中,我拥有所有图像(请参阅树下方)。
dist
|---- bundle.js
|---- bundle.css
|---- images
|---- example.svg
我的想法是将 url 设置为假 url,但我不希望 sass 解析 url 并加载图像。我只想按原样添加 url,不希望它检查给定的路径。 如果可能的话,你知道怎么做吗?
【问题讨论】:
-
如果您使用 dist 文件夹来测试您的开发,请在使用
css文件的路径时遵循dist/文件夹结构。尝试改用img/example.svg。捆绑包路径将查看path/to/project/dist/images/example.svg。 -
在这个包里。所以我执行了“npm install myModule”,所有内容都添加到了 node_modules 中。这就是为什么,我不需要将资产复制到 dist 中,因为我将在 src/images/example.svg 的另一个项目中手动添加它。我已经尝试过,但它不起作用,因为他没有找到该文件。 @user7364588
标签: webpack sass webpack-4 webpack-style-loader