webpack的css-loader和file-loader冲突?
例子就是为了测试一下css-loader,结果发现css-loader和file-loader冲突,
如果我把file-loader注释了页面就正常显示,file-loader会对css里面的url的图片也会进行处理吗?
js里面只有一行代码引入css
webpack配置如下
const path = require("path");
const { CleanWebpackPlugin } = require("clean-webpack-plugin");
const HtmlWebpackPlugin = require("html-webpack-plugin");
module.exports = {
mode: "development",
entry: {
main: path.resolve(__dirname, "src", "index"),
},
output: {
path: path.resolve(__dirname, "dist"),
publicPath: "/syh-app/",
filename: "[name].js",
},
module: {
rules: [
{
test: /\.(css)?$/,
use: ["style-loader", "css-loader"],
},
{
test: /\.jpg?$/,
use: {
loader: "file-loader",
options: {
outputPath: "images/",
},
},
},
],
},
resolve: {
extensions: [".json", ".js", ".jsx"],
},
plugins: [
new HtmlWebpackPlugin({
template: "src/index.html",
}),
new CleanWebpackPlugin(),
],
devtool: "source-map",
devServer: {
host: "localhost",
open: true,
port: 8080,
openPage: "syh-app/",
},
};
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
file-loader一般不用来处理css资源吧。css文件一般用css-loader,style-loader或者MiniCssExtractPlugin插件。
css-loader里面的url资源使用url-loader进行打包,不使用css-loader
我贴一下我常用的webpack配置吧:
.css文件处理:
file-loader一般搭配url-loader和html-loader用来处理外部资源。其中file-loader用来打包非html/css/less/js/jpg/jpeg/png/gif的文件,比如字体,音视频的文件。
如果楼主使用的是 webpack5 的话,那遇到的问题应该是和我一样了。在 webpack5 中应该:
type: 'asset/resource'
替代file-loader
;file-loader
但是需要设置type: 'javascript/auto'
;具体原因可以参考