Как перезаписать предустановленные параметры плагина babel - PullRequest
0 голосов
/ 16 сентября 2018

Я использую babel-preset-реакции-приложение через следующие .babelrc:

{
  "presets": ["react-app"],
  "plugins": [
    "transform-es2015-modules-commonjs",
    "transform-async-generator-functions"
  ]
}

Мне нужно перезаписать babel-plugin-transform-runtime параметров. Я попытался установить плагин и добавить его в .babelrc следующим образом:

{
  "presets": ["react-app"],
  "plugins": [
    ["babel-plugin-transform-runtime", {
      "helpers": false,
      "polyfill": false,
      "regenerator": false
    }],
    "transform-es2015-modules-commonjs",
    "transform-async-generator-functions"
  ]
}

но у меня это не работает.

Есть ли способ, которым я могу сделать это без копирования и вставки всей предустановки в мой .babelrc?

1 Ответ

0 голосов
/ 01 августа 2019

Похоже, что Babel в настоящее время не поддерживает такого рода переопределения (см. https://github.com/babel/babel/issues/8799). К счастью, я нашел обходной путь для babel-preset-react-app. Существует недокументированная опция, useESModules:

['react-app', { useESModules: false }]

Вот конфигурация, использующая babel-plugin-react-app, которая работает для node.js:

    presets: [
        ['react-app', { useESModules: false }],
        [
            '@babel/preset-env',
            {
                modules: 'commonjs',
                targets: {
                    node: 'current',
                },
            },
        ],
    ],

Конечно, использование babel-preset-react-app наиболее целесообразно, если вы используете create-react-app для вашего клиентского пакета. Если вы не используете create-react-app, то вы можете рассмотреть возможность использования @ babel / preset-реагировать напрямую, в этом случае вам не придется беспокоиться о переопределенииuseESModules.

...