Npm 运行摩卡测试时使用不同的巴贝尔预设
我的npm包构建使用babel运行,我在我的Npm 运行摩卡测试时使用不同的巴贝尔预设,npm,mocha.js,babeljs,Npm,Mocha.js,Babeljs,我的npm包构建使用babel运行,我在我的package.json中使用 “巴别塔”:{“预设”:[“es2015”]} 我还配置了一个mocha测试脚本 “测试”:“摩卡——编译器js:babel核心/寄存器” 但是,我希望使用不同于为我的构建指定的巴别塔预设来运行测试 可能吗?我想你能做到吗?你可以创建一个名为babel hook.js的文件,并将其放入: require("babel-register")({ presets: [ /* whatever values you wan
package.json
中使用
“巴别塔”:{“预设”:[“es2015”]}
我还配置了一个mocha测试脚本
“测试”:“摩卡——编译器js:babel核心/寄存器”
但是,我希望使用不同于为我的构建指定的巴别塔预设来运行测试
可能吗?我想你能做到吗?你可以创建一个名为
babel hook.js的文件,并将其放入:
require("babel-register")({
presets: [ /* whatever values you want here */ ],
});
然后像这样运行摩卡咖啡:
mocha --require babel-hook
"babel": {
"env": {
"test-console": {
"presets": ["@babel/preset-env"],
"plugins": ["@babel/plugin-proposal-class-properties"]
}
,
"test": {
"presets": ["@babel/preset-env"],
"plugins": ["@babel/plugin-proposal-class-properties", "transform-remove-console"]
}
}
这将注册Babel,您可以使用任何您想要的配置,与package.json中的任何配置分开,这样您就可以设置测试
环境变量并相应地更改预设:
在您的包.json中:
"babel": {
"env": {
"test": {
"presets": [/* your test presets */]
}
},
"presets": [/* your usual presets */]
}
然后,像这样运行mocha命令:
"test: BABEL_ENV=test mocha --compilers js:babel-core/register"
关于在package.json中配置babel的答案部分是正确的。
我需要添加单独的env条目以使其正常工作,否则env外部的配置将始终运行。
最后的配置示例如下所示:
mocha --require babel-hook
"babel": {
"env": {
"test-console": {
"presets": ["@babel/preset-env"],
"plugins": ["@babel/plugin-proposal-class-properties"]
}
,
"test": {
"presets": ["@babel/preset-env"],
"plugins": ["@babel/plugin-proposal-class-properties", "transform-remove-console"]
}
}
和脚本:
"scripts": {
"test-console-log": "BABEL_ENV=test-console mocha || TRUE",
"test": "BABEL_ENV=test mocha || TRUE"
}
也很好。我认为这是一种更具表现力的方式。这意味着当有人查看package.json
时,就可以清楚地知道测试预置的依赖关系是用来做什么的。我刚刚意识到这可能在Windows上不起作用,因为Windows shell不理解环境变量声明。我认为Windows中有一些等效的命令。也许是SET BABEL_ENV=test
或者类似的东西?谢谢,BABEL.ENV.test.presets真的救了我一天谢谢,“插件”:[“@BABEL/plugin提案类属性”]救了我一天