8

我似乎完全不知道在哪里放置 babel 的根编程选项。

如果我有一个 monorepo 并且需要告诉不同的子包它们应该向上查找我的 babel.config.js 那么我应该放入rootMode: "upwards"子包的 .babelrc 中,对吗?这不起作用,因为产生的错误

Error: .rootMode is only allowed in root programmatic options

不知何故,我根本找不到任何在哪里放置/使用根编程选项的例子......谁能指出我正确的方向?

4

2 回答 2

0

我使用我的(可能是非标准的)monorepo 设置遇到了这个错误,其中我的每个包都有顶级子目录。没有顶级包。当我升级到 Babel 7 时,我的 Jest 测试不再将yarn link编辑的包转换为我运行 Jest 的包。

我添加了一个顶层babel.config.js作为Babel 的 monorepo 指令的一部分。我rootMode: "upwards"在这三个地方:

  • ui-package/webpack.config.js用于转换应用程序。

  • ui-package/babel-jest.js对于测试,它看起来像:

    module.exports = require("babel-jest").createTransformer({
      rootMode: "upward",
    })
    

    jest.config.js并在同一个目录中引用,例如:

    transform: {
      "^.+\\.jsx?$": "./babel-jest.js",
    },
    
  • 而在 中/babel.config.js,新添加的顶级 babel conf 文件。

从最后一个删除它删除了错误。

于 2021-04-17T23:48:41.937 回答
-2

如果你使用的是 Webpack,你需要把它放在那里。

module: {
  [..]
  rules: [
    // Transpile ES6 Javascript into ES5 with babel loader
    {
      test: /\.jsx?$/,
      exclude: [/node_modules/, /json/],
      loader: 'babel-loader',
      options: {
        rootMode: 'upward'
      },
    },
    [..]
  ],
  [..]
},

否则我和你有同样的问题,我不能用 key 把它放在 package.json 文件中babel

于 2018-11-08T12:17:11.590 回答