Javascript 将url()解析为图像而不绑定
我正在将Webpack集成到一个已经建立的前端环境中。Sass和resolve url loader正在工作,Webpack将查找CSS中的Javascript 将url()解析为图像而不绑定,javascript,css,webpack,sass,resolve-url-loader,Javascript,Css,Webpack,Sass,Resolve Url Loader,我正在将Webpack集成到一个已经建立的前端环境中。Sass和resolve url loader正在工作,Webpack将查找CSS中的url()引用的文件。我的问题是,我不想将url()引用的文件复制到dist/文件夹中,我想链接到它们所在的位置 我的文件是这样设置的 www/ index.html assets/ js/ main.js css/ main.scss components/ thing.scss
url()
引用的文件。我的问题是,我不想将url()
引用的文件复制到dist/文件夹中,我想链接到它们所在的位置
我的文件是这样设置的
www/
index.html
assets/
js/
main.js
css/
main.scss
components/
thing.scss
images/
pic.jpg
dist/
output.js
output.css
使用main.scss导入包含行的thing.scss
background:url(../../images/pic.jpg)
resolve url loader会正确地将其解析为。/images/pic.jpg
,css loader会找到该文件,并调用该文件的加载程序(文件加载程序)。但是,我不想将文件复制到dist/(我通过向文件加载器添加emitFile:false
)并重写url,使其与CSS输出相对(。/assets/images/pic.jpg
)。我该怎么做
作为参考,这里是我的webpack.config.js
const path=require('path');
const MiniCssExtractPlugin=require(“迷你css提取插件”);
{
条目:'./assets/js/main.js',
输出:{
path:path.resolve(uu dirname,'dist'),
文件名:“output.js”,
publicPath:'dist/'
},
模块:{
规则:[{
测试:/\.scss$/,,
使用:[
MiniCssExtractPlugin.loader{
加载器:“css加载器”,
选项:{
sourceMap:true,
url:false
}
}, {
加载程序:“解析url加载程序”,
选项:{
是的,
sourceMap:true
}
}, {
加载器:“sass加载器”,
选项:{
sourceMap:true,
sourceMapContents:false
}
}
]
}, {
测试:/\(png | svg | jpg | gif)$/,
使用:[{
加载器:“文件加载器”,
选项:{
emit文件:false
}
}]
}]
},
插件:[新的MiniCssExtractPlugin({
文件名:“[name].css”,
chunkFilename:“[id].css”
})],
}
不是最好的答案,但它很有效
删除解析url加载程序并将css加载程序保留在url:false上。然后只需编写URL路径,就像它们在输出文件中工作一样
不过我可能会接受它并打包我的图片