Webpack 4 babel loader exclude не работает

Я пытаюсь настроить Webpack 4.6.0 с помощью React, и у меня возникла проблема: Webpack 4 babel loader exclude не работает

в webpack.config.js:

...
rules: [
  {
    test: /\.jsx?$/,
    exclude: /node_modules(?!/myuimodule)/,
    use: ['babel-loader'],
  },
...

и в .babelrc

{
  "presets": [
    "@babel/react",
    [
      "@babel/preset-env",
      {
        "useBuiltIns": "usage",
        "modules": false
      }
    ]
  ],
  "plugins": [
    "@babel/plugin-proposal-class-properties",
    "@babel/plugin-proposal-object-rest-spread",
    "@babel/plugin-syntax-dynamic-import"
  ]
}

почему babel-loader не исключает myuimodule?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
0
1 243
2

Ответы 2

Вы получаете эту ошибку из-за вашей линии exclude. Webpack пытается собрать ваш пакет. Он находит где-то в дереве зависимостей, начиная с entry, эту строку

import Progress from './path/to/Progress.jsx'

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

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

Progress.jsx находится в myuimodule, который я включаю

Pavel 23.04.2018 18:13

В декларации rulesexclude: /node_modules(?!/myuimodule)/

Pavel 23.04.2018 18:21

Но буквально говорит exclude вместо include. Попробуйте заменить на include.

coockoo 23.04.2018 18:24

Можете ли вы попробовать исключить как функцию? Как упоминалось здесь github.com/webpack/webpack/issues/2031#issuecomment-28351715‌ 0

coockoo 23.04.2018 21:24

Или вы можете добавить include и перечислить в виде массива все ваши исходные каталоги, включая myuimodule.

coockoo 23.04.2018 21:28

Кажется сумасшествием, но попробуйте просто переименовать .babelrc в babel.config.json. Не знаю, почему это работает, но это решило проблему дважды для меня. Не помню, где впервые откопал этот раствор.

Другие вопросы по теме