Учитывая тот же конфиг псевдонима, почему `css-loader` не разрешает этот запрос изображения тем же способом, что и` extended-resol``? - PullRequest
0 голосов
/ 09 июня 2018

Этот вопрос контекстуализирован с использованием минимального репо , чтобы вы могли воспроизвести то, что я вижу.

Я ожидаю, что 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 , кажется, что тракт трактуется относительно контекста распознавателя, не замечая псевдоним.

Это ошибка, или я сделал конфигурациюошибка?

...