Похоже, что 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
.