Webpack css加载器生成带有“";“自动”-前缀
我有一个设置,我使用webpack编译一个css文件,该文件有一个指向png图像的url链接。 css文件和png都使用哈希名称写入输出文件夹。 我使用css加载器、提取加载器和文件加载器来实现这一点 整个设置在WebpackV4和css LoaderV3上运行良好。 现在我正在尝试迁移到WebpackV5和css加载程序v5。因此,生成的css中的url链接是错误的:它有一个Webpack css加载器生成带有“";“自动”-前缀,webpack,css-loader,Webpack,Css Loader,我有一个设置,我使用webpack编译一个css文件,该文件有一个指向png图像的url链接。 css文件和png都使用哈希名称写入输出文件夹。 我使用css加载器、提取加载器和文件加载器来实现这一点 整个设置在WebpackV4和css LoaderV3上运行良好。 现在我正在尝试迁移到WebpackV5和css加载程序v5。因此,生成的css中的url链接是错误的:它有一个auto-前缀,例如 生成的png:logo.9941b604ef38475a0267fbba30e5b505.png
auto
-前缀,例如
- 生成的png:
logo.9941b604ef38475a0267fbba30e5b505.png
- css中的url:
url(autologo.9941b604ef38475a0267fbba30e5b505.png)
网页:5.38.1
css加载器:5.2.6
文件加载器:6.2.0
提取加载器:5.1.0 My webpack.config.js
const path = require('path');
const distDir = path.resolve(__dirname, 'dist');
module.exports =
{
experiments:
{
asset: false
},
entry:
{
style: './src/style.js'
},
output:
{
filename: '[name].bundle.[contenthash].js',
path: distDir,
},
module:
{
rules:
[
{
resource: /\.css$/,
use:
[
{
loader: 'file-loader',
options:
{
name: '[name].[hash].css'
}
},
{
loader: 'extract-loader'
},
{
loader: 'css-loader'
}
],
},
{
test: /\.png$/,
use: {
loader: 'file-loader',
options: {
name: '[name].[hash].[ext]'
}
}
}
]
}
};
style.js
只是一个虚拟入口点,在这里我只需导入css文件
感谢您的反馈。至少我找到了解决这种奇怪行为的方法: 我现在使用MinicsSextract插件,而不是使用提取加载程序和文件加载程序。对于webpack v5,文件加载器仍被标记为已弃用 我还尝试了新的资产模块(正如webpack文档所建议的那样),但在我的场景中无法让它工作 这种方法的一个缺点是,我需要在
webpack.config.js
中为我要处理的每个css文件定义一个入口点,因为MinicsExtractPlugin为每个入口点生成一个css文件。在使用js文件作为虚拟入口点之前,我只需导入所有需要处理的css文件