我似乎完全不知道该把巴别塔的根程序选项放在哪里。如果我有一个monorepo,需要告诉不同的子包,他们应该向上查找我的babel.config.js,那么我应该把rootMode: "upwards"放到子包的.babelrc中,对吗?这是行不通的,因为会产生错误Error: .rootMode is only allowed in root programmatic options不知何故,我就是找不到任何例子,在哪里放置/使用根编程选项...有人能给我指出正确的方向吗?
rootMode: "upwards"
Error: .rootMode is only allowed in root programmatic options
uxhixvfz1#
如果您正在使用Webpack,则需要将其放在那里。
module: { [..] rules: [ // Transpile ES6 Javascript into ES5 with babel loader { test: /\.jsx?$/, exclude: [/node_modules/, /json/], loader: 'babel-loader', options: { rootMode: 'upward' }, }, [..] ], [..] },
否则我有同样的问题比你,我不能把它在package.json文件中使用的关键字babel .
babel
eyh26e7m2#
任何与API相关的选项都被称为编程选项。https://github.com/babel/babel/discussions/14405。当你直接将它们指定给Babel(babel.transformSync(code,programmaticOptions))或你正在使用的Babel集成(例如babel-loader,它可以将它们传递给它内部的babel.transform调用)。换句话说,不是在预置或配置文件中。[...]由Nicolo-Ribaudo - Babel核心团队负责。
suzh9iv83#
我在使用我的(可能是非标准的)monorepo设置时遇到了这个错误,我的每个包都有一个顶级子目录。没有顶级包。当我升级到Babel 7时,我的Jest测试不再转换那些yarn link的包到我运行Jest的包中。我在Babel的monorepo指令中添加了一个顶级的babel.config.js。
yarn link
babel.config.js
ui-package/webpack.config.js
ui-package/babel-jest.js
module.exports = require("babel-jest").createTransformer({ rootMode: "upward", })
并且引用自相同目录中的jest.config.js,如:
jest.config.js
transform: { "^.+\\.jsx?$": "./babel-jest.js", },
/babel.config.js
将其从最后一个中删除可删 debugging 误。
3条答案
按热度按时间uxhixvfz1#
如果您正在使用Webpack,则需要将其放在那里。
否则我有同样的问题比你,我不能把它在package.json文件中使用的关键字
babel
.eyh26e7m2#
任何与API相关的选项都被称为编程选项。https://github.com/babel/babel/discussions/14405。
当你直接将它们指定给Babel(babel.transformSync(code,programmaticOptions))或你正在使用的Babel集成(例如babel-loader,它可以将它们传递给它内部的babel.transform调用)。换句话说,不是在预置或配置文件中。[...]
由Nicolo-Ribaudo - Babel核心团队负责。
suzh9iv83#
我在使用我的(可能是非标准的)monorepo设置时遇到了这个错误,我的每个包都有一个顶级子目录。没有顶级包。当我升级到Babel 7时,我的Jest测试不再转换那些
yarn link
的包到我运行Jest的包中。我在Babel的monorepo指令中添加了一个顶级的
babel.config.js
。ui-package/webpack.config.js
用于转换应用程序。ui-package/babel-jest.js
,显示为:并且引用自相同目录中的
jest.config.js
,如:/babel.config.js
中,新添加的顶级babel conf文件。将其从最后一个中删除可删 debugging 误。