根据标题,我正在尝试测试一些用 ES6 JS 编写的 AMD 模块,从 nodejs 运行。
我首先尝试使用 Intern :即使在 nodejs 中启用 --harmony
之后,我最终还是面临着 Intern 的依赖链,我无法在其中启用 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 位?助教。
最佳答案
我一直在用
npm install mocha-traceur
mocha ./tests/* --compilers js:mocha-traceur
它的效果非常好!
关于javascript - 如何测试harmony/ES6/ECMAScript 6 JavaScript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26304517/