我已经建立了一个ES6-Babel项目,一切都很好。我用摩卡做测试。现在,我希望能够在运行测试的同时运行调试器。这就是我迄今为止所做的:
npm install -g node-inspector
npm install -g babel-register
创建了一个名为babel-hook.js 的文件
require('babel/register')({
stage: 1,
sourceMap: 'inline',
});
现在我在一个控制台上运行:
node-inspector
打开Chrome
然后从项目根运行:
mocha --debug-brk test/my-test-file.js
然后我在测试中设置了一个断点:
当我点击F8时,我得到以下错误:
/Users/h/Documents/code/js/test/my-test-file.js:1
(function (exports, require, module, __filename, __dirname) { import { assert } from 'chai';
^^^^^^
SyntaxError: Unexpected token import
...
现在,我缺少什么来让它发挥作用???
您可能想要mocha的--compilers
标志,它指定如何编译输入文件。例如https://babeljs.io/docs/setup/#installation给出了的示例
mocha --compilers js:babel-register
此外,尝试在不使用--debug-brk
的情况下运行测试,以帮助隔离断点是否是问题所在,或者它是否是mocha(这里描述的解决方案是针对后者的)。
最后,如果这不起作用,您可能会在非全局安装babel-register
(没有-g
标志到npm install
)时获得更好的结果,如文档所示:https://babeljs.io/docs/usage/require/