3

npx babel index.js从命令行运行时,我希望看到我的 babel 配置从 babel.config.js 应用

然而,情况似乎并非如此,因为想知道为什么会这样?

// babel.config.js
module.exports = function babel(api) {
 api.cache(true);
   return {
     presets: ['module:metro-react-native-babel-preset'],
     plugins: [
       [
         'babel-plugin-root-import',
         {
           rootPathSuffix: './src',
           rootPathPrefix: '~/',
         },
       ],
     ],
   };
 };

// index.js
import { AppRegistry } from 'react-native';
import App from '~/App';
AppRegistry.registerComponent("App Name", () => App)

// Expected output from npx babel index.js
import { AppRegistry } from 'react-native';
import App from './src/App'; // Note the change from '~' to './src' using babel-plugin-root-import
AppRegistry.registerComponent("App Name", () => App)

我在 npx babel --help 中注意到它指出 --no-babelrc 标志忽略来自 .babelrc 和 .babelignore 文件的配置。这是否表明调用此命令时不考虑 babel.config.js 文件?

干杯

4

1 回答 1

4

babel.config.js babel 7 中引入了配置更改;所以如果你使用的是 babel 6.*,它还不了解项目范围的配置;使用.babelrc升级到 babel 7以便能够使用新功能;我已经完成了非常顺利和无痛的升级,只要确保你有干净的 git 目录(以防紧急情况:) 并执行它。

于 2020-03-13T07:49:02.960 回答