Этот вопрос контекстуализирован с использованием минимального репо , чтобы вы могли воспроизвести то, что я вижу.
Я ожидаю, что css-loader@0.28.0
будет вести себя так же, как и webpack@4.12.0
Модуль распознавания, когда и загрузчик, и Webpack используют одну и ту же конфигурацию alias
.
Вот выбор из репозитория, показывающий конфигурацию псевдонима и его отношение к распознавателям.
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
};
СейчасВ этом репозитории есть файл js
, содержащий require('packages/b/img.png')
, и файл css
в каталоге-родственнике, содержащий url('packages/b/img.png')
.
. Работает только один js
.Несмотря на то, что говорят css-loader
docs , кажется, что тракт трактуется относительно контекста распознавателя, не замечая псевдоним.
Это ошибка, или я сделал конфигурациюошибка?