css - 给定相同的别名配置,为什么 `css-loader` 不以与 `enhanced-resolve` 相同的方式解析此图像请求?
问题描述
这个问题使用最小的 repo进行上下文化,以便您可以重现我所看到的内容。
当加载器和 Webpack 使用相同的配置时,我期望css-loader@0.28.0
其行为方式与's 模块解析器相同。webpack@4.12.0
alias
这是来自 repo 的选择,显示了别名配置以及它与解析器的关系。
const context = path.resolve(__dirname, 'pkgs', target);
const dist = path.resolve(__dirname, 'dist');
const pkgsdir = path.resolve(__dirname, 'pkgs');
const adir = path.resolve(__dirname, 'a');
const bdir = path.resolve(__dirname, 'b');
const alias = {
'a': adir,
'b': bdir,
'packages': pkgsdir,
'#': pkgsdir,
};
// ... snip
const wpconfig = {
context,
entry: path.resolve(context, 'index.js'),
output: {
path: dist,
filename: 'out.js',
},
mode: 'production',
resolve: {
alias,
modules: [
'node_modules',
],
},
module: {
rules: [
{
test: /\.css$/,
use: [
{
loader: 'css-loader',
options: {
alias,
},
},
],
},
{
loader: 'file-loader',
// ... snip
},
],
},
// ... snip
};
现在,在该 repo 中有一个js
包含 的文件require('packages/b/img.png')
,以及一个css
包含url('packages/b/img.png')
.
只有js
一个有效。尽管css-loader
's docs说什么,它似乎将路径视为相对于解析器上下文而没有注意到别名。
这是一个错误,还是我犯了配置错误?
解决方案
推荐阅读
- html - 树形结构父元素
- python - 如何在绘图时调整 xticks 标签
- amazon-web-services - DynamoDB - UUID 并避免全表扫描
- reactjs - 找不到模块的声明文件,@types/...@latest' 不在 npm 注册表中
- python - 带有熊猫的加权平均数据框
- php - 如何在表单构建器中使用带有选择标签的查询构建器?
- excel - File.content 的 Power Query 通配符
- r - 使用 plot 和 mfrow 函数在 r 中保存多个图
- arrays - 从数组复制到另一个大小不确定的数组
- reactjs - 如何等待大量的 REST API 调用完成?