Webpack + Babel переносит загрузчики Webpack, как мне предотвратить это? - PullRequest
3 голосов
/ 20 февраля 2020

Я думал, что Webpack + Babel будет передавать только код приложения, а не код, используемый для сборки Webpack. Тем не менее, похоже, что он переносит код из css-loader, mini-css-extract-plugin, et c, что вызывает следующую ошибку:

ERROR in ./styles/main.scss
Module build failed (from ../node_modules/mini-css-extract-plugin/dist/loader.js):
TypeError: __webpack_require__(...) is not a function

Если я добавлю следующее к exclude, эта ошибка исправлено:

  module: {
    rules: [
      {
        test: /\.(j|t)sx?$/,
        include: [APP_ROOT, path.resolve('./node_modules')],
        exclude: [
          path.resolve('./node_modules/mini-css-extract-plugin'),
          path.resolve('./node_modules/css-loader'),
        ],
        use: [
          'babel-loader',
        ],
      },
      ...

Я думал, что мне это не понадобится, потому что Babel не должен переносить пакеты, используемые для процесса сборки Webpack. Я добавил node_modules к include, потому что некоторые пакеты используют код, который не будет работать в старых браузерах.

Ответы [ 3 ]

2 голосов
/ 26 февраля 2020

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

entry: SRC_DIR + '/main.js',
resolve: {
    extensions: ['.js'],
    modules: [SRC_DIR, 'node_modules']
},
module: {
    rules: [
        {
            test: /\.js$/,
            exclude: /node_modules/,
            use: ['eslint-loader']
        }
    ]
}
0 голосов
/ 02 марта 2020

Для переноса специальных файлов, таких как, css или png или jpg или svg и т. Д. c из папок вашего проекта, требуются определенные загрузчики, но во время переноса он также выбирает файлы загрузчика, так что формат вашего файла (например, css) могут быть сопоставлены и проанализированы на наличие ошибок. Затем он передается для получения окончательных файлов сборки.

0 голосов
/ 02 марта 2020

Попробуйте исключить все node_modules и включите только те ресурсы node_module, которые вам действительно необходимо перенести. Могу поспорить, что это сделает вашу проблему go прочь.

...