此处的可重复设置最少:https ://github.com/jamesopti/webpack_playground/tree/resolve_url_loader_issue
我试图使用resolve-url-loader
向我的 scssurl()
图像路径添加一个哈希名称,但我有一段时间让它与 webpack 4 一起工作。我有一堆图像/static/img/**
在我的 SCSS 中被引用,例如:
span.arrow {
background: url(/static/img/audiences.png);
}
这在我的 css 中以完全相同的方式结束(resolve-url-loader 没有找到它们)
当我通过 webpack 运行以下配置时,我看到解析加载器正在寻找正确url()
的路径及其路径,但调试模式显示未找到。
resolve-url-loader: /static/img/audiences.png
/Users/usr1/webpack_playground/src
/Users/usr1/webpack_playground/static/img
NOT FOUND
是否有一些不正确的输出配置?我尝试了各种设置组合均无济于事:
loader: 'resolve-url-loader',
options: {
debug: true,
root: path.join(__dirname, './static/img'),
includeRoot: true,
absolute: true,
},
我的最终目标是让文件加载器将它们转换为 /dist 散列版本:
span.arrow {
background: url(/static/img/audiences-dhsye47djs82kdhe6.png);
}
// Webpack 规则配置
rules: [
{
test: /\.(png|jpg|gif)$/,
include: [
path.resolve(__dirname, './static/img'),
],
use: {
loader: 'file-loader',
options: {
name: '[name]-[hash].[ext]',
},
},
},
{
test: /\.svg$/,
use: {
loader: 'svg-inline-loader',
options: {
name: '[name]-[hash].[ext]',
},
},
},
{ test: /\/src\/js\/(?:.*)\.css$/, use: [ { loader: 'style-loader' }, { loader: 'css-loader' } ] },
{
test: [/\.scss$/, /\.sass$/],
use: [
MiniCssExtractPlugin.loader,
{
loader: 'css-loader',
options: {
sourceMap: true,
},
},
{
loader: 'resolve-url-loader',
options: {
debug: true,
root: './static/img',
includeRoot: true,
},
},
{
loader: 'sass-loader',
options: {
outputStyle: 'compressed',
sourceMap: true,
includePaths: [
'./src'
],
},
},
],
},
]