我刚刚在工作中被分配了一个使用原始本机导入/导出的项目(仅支持最新的浏览器),其中很大一部分是由一些顾问编写的(我不能解雇它们或更改其中的大块内容)项目/工具链)。我希望尽可能在node.js中运行测试(必要时使用jsdom),通常每分钟运行多次(即,它们需要快速)。我坚强宁愿不必每隔几秒钟就按Alt键浏览器以查看结果。
由于顾问根据我们的意愿(长期而言)做出了一些技术选择,因此我不得不使用mocha和chai进行测试(我习惯于Jasmine和Jest),并且它们没有测试/测试工作流程设置(再次,我无法从自己手中解雇他们。)
搜索时,我发现了this个问题及其答案。许多建议已弃用,或针对旧版本的建议,例如通天塔。
我终于到了安装@ babel / core,@ babel / register和@ / babel / preset-env并准备就绪的地步。
所以我
mocha --require @babel/register path/to/test.js
在.babelrc中使用适当的预设,我得到
regeneratorRuntime未定义
即使节点支持,它显然也在尝试填充异步/等待。
我不需要转换现代语法的每个方面,我只需要将import / export语句更改为module.exports并要求。我真的不想增加额外的转换/多边形填充的开销,我只是想在这里运行一些测试。我添加了@ babel / polyfill只是为了使其正常工作,但是我可以将其设置为仅转换导入/导出语句吗?
答案 0 :(得分:1)
您可以add targets
to @babel/preset-env
使其知道要定位的环境。
在这种情况下,您将定位到当前版本的Node.js:
presets: [
[
'@babel/preset-env',
{
targets: {
node: 'current',
},
},
],
...
]