Должен ли я настроить Babel через .babelrc или WebPack? - PullRequest
0 голосов
/ 05 июня 2019

В моем реактивном проекте webpack.config.js добавляет свойства класса предложения, например:

...
module: {
  rules: [
    {
      test: /\.jsx?$/,
      exclude: /(node_modules|bower_components)/,
      use: {
        loader: 'babel-loader',
        query: {
          presets: ['@babel/react', '@babel/preset-env'],
          plugins: ['@babel/proposal-class-properties']
        }
      },
    }
...

Включая @babel/proposal-class-properties Я могу удалить конструкторыиз моих компонентов React и т. д.

Однако документация показывает plugin-proposal-class-properties в .babelrc следующим образом (и вообще не упоминает webpack.config.js):

{
  "plugins": ["@babel/plugin-proposal-class-properties"]
}

, тогда как my .babelrc вообще не включает никаких плагинов:

{
  "presets": [
    ["@babel/env", {
      "modules": false
    },
    "@babel/preset-env"]
  ]
}

Есть ли эффективная разница между включением плагинов (таких как proposal-class-properties) в webpack.config.js по сравнению сположить их в .babelrc?

1 Ответ

2 голосов
/ 05 июня 2019

Вы можете настроить babel через .babelrc или через babel-loader конфигурацию в веб-пакете. Они оба работают одинаково.

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

.babelrc:

{
  "presets": ["@babel/preset-env"]
  "plugins": ['@babel/plugin-proposal-class-properties', {'loose': true}]
}
...