【发布时间】:2014-12-05 22:10:45
【问题描述】:
根据标题,我正在尝试测试一些用 ES6 JS 编写的 AMD 模块,从 nodejs 运行。
我首先尝试使用Intern:即使在nodejs 中启用--harmony 之后,我最终还是面临实习生的依赖链,我无法在例如启用Harmony。 Istanbul、esprima 和其他人(为此我开了一个issue)。
然后我转到mocha,然后我就卡在这里了……奇怪。我为 nodejs 和 mocha 本身都启用了 Harmony,这是 package.json 测试脚本:
"test": "node --harmony node_modules\\mocha\\bin\\mocha tests --harmony --recursive"
我从命令提示符以npm test my_test_folder 运行。尽管如此,一些 ES6 构造(如 const)仍然可以通过,但随后它在解构赋值上窒息。这是第一行输出:
const { log, dir } = require('../consoleLogger.js');
^
SyntaxError: Unexpected token {
at Module._compile (module.js:439:25)
at Object.Module._extensions..js (module.js:474:10)
[...continues...]
我还检查了这个SO thread 并听说了转译器,但我真的不知道它们是否可以工作,我现在正试图让转译器在这种情况下工作。
关于如何解决这个问题的任何想法,而无需更改代码中传播的所有 ES6 位?助教。
【问题讨论】:
-
在不使用 Mocha 的情况下,您可以使用 Harmony 的任何功能吗?如果在不使用 Mocha 时它不起作用,则它不适用于 Mocha。
-
好点,虽然代码是 Thunderbird 插件的一部分,和谐功能在其中工作。在这里,我正在尝试从(节点)命令行运行测试,所以现在出现了问题。
-
由于没有人提及,请查看kangax.github.io/compat-table/es6
标签: javascript mocha.js intern ecmascript-6 ecmascript-harmony