我似乎绝对不知道要为babel放置根程序选项。
如果我有一个monorepo,并且需要告诉不同的子程序包它们将向上看我的babel.config.js,那么我应该将rootMode: "upwards"
放入子程序包的.babelrc中,对吗?由于产生的错误,这不起作用
Error: .rootMode is only allowed in root programmatic options
以某种方式,我根本找不到在哪里放置/使用根程序选项的任何示例……有人能指出我正确的方向吗?
答案 0 :(得分:0)
我在使用我的(可能是非标准的)monorepo 设置时遇到了这个错误,我的每个包都有顶级子目录。没有顶级包。当我升级到 Babel 7 时,我的 Jest 测试不再将 yarn link
ed 的包转换为我运行 Jest 的包。
我添加了顶级 babel.config.js
作为 Babel's monorepo instructions 的一部分。我在这三个地方有 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 文件。
从最后一个删除它消除了错误。
答案 1 :(得分:-2)
如果您正在使用Webpack,则需要将其放在那里。
module: {
[..]
rules: [
// Transpile ES6 Javascript into ES5 with babel loader
{
test: /\.jsx?$/,
exclude: [/node_modules/, /json/],
loader: 'babel-loader',
options: {
rootMode: 'upward'
},
},
[..]
],
[..]
},
否则我遇到的问题与您相同,我无法使用键babel
将其放在package.json文件中。