Транспортировка и распаковка файлов вне моего корневого каталога. 4 - PullRequest
0 голосов
/ 11 мая 2019

Я разрабатываю модуль, который обрабатывает файлы вне своего корневого каталога, например, если у меня следующая структура папок:

Frontend -> src -> chunks -> js -> main.es6

Frontend -> src -> chunks -> scss -> styles.scss

Frontend -> node_modules -> @workspace -> module -> client -> index.js

Я пытаюсь обработать файлы внутри Frontend / src(es6 и scss) изнутри модуля, расположенного в папке node_modules с веб-пакетом 4, но babel-загрузчик не переносится, а sass-загрузчик работает неправильно и, как следствие, не работает css-загрузчик.Вот как мой конфиг веб-пакета ищет modules.rules

module: {
    rules: [
        {
            test: /(.es6|.js)$/,
            exclude: /node_modules/,
            include: [Path.resolve(__dirname, './../../../../../src/**/main.es6')],
            loader: 'babel-loader',
            options: {
                presets: ['@babel/preset-env']
            }
        },
        {
            enforce: 'pre',
            test: /(.es6|.js)$/,
            exclude: /node_modules/,
            loader: 'eslint-loader',
            include: Path.resolve(__dirname, '../../../../../src/**/*.es6'),
            options: {
                cache: false,
                configFile: ExternalConfigsPaths.ESLINT,
                emitWarning: true
            }
        },
        {
            test: /\.s?css/i,
            include: Path.resolve(__dirname, './../../../../../src/**/*.scss'),
            use: [
                MiniCssExtractPlugin.loader,
                {
                    loader: 'css-loader',
                    options: {
                        sourceMap: true
                    }
                },
                {
                    loader: 'sass-loader',
                    options: {
                        sourceMap: true,
                        includePaths: [Path.resolve(__dirname, './../../../../../src/**/*.scss')]
                    }
                }
            ]
        }
    ]
}

Я читал, что может не может транспортировать или обрабатывать файлы за пределамикорневого каталога модуля, в этом случае мне нужно будет скопировать файлы из файлов src в модуль, обработать их и затем переместить сгенерированные / обработанные файлы снова за пределы модуля, мне не очень нравится этот подходи именно поэтому я прихожу сюда, чтобы посмотреть, можете ли вы помочь мне в этом.

1 Ответ

0 голосов
/ 15 мая 2019

Решил это, разрешив загрузчики с require.resolve вместо того, чтобы называть их строками.

Например, в моем конфиге webpack вместо

loader: 'babel-loader',
options: {
    presets: ['@babel/preset-env']
}

Я сделал:

loader: require.resolve('babel-loader'),
options: {
    presets: [require.resolve('@babel/preset-env')]
}

Следовал той же схеме для всех остальных загрузчиков, и это решило мою проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...