相关疑难解决方法(0)

什么是扩展模式?

let在Node v0.10.12中玩弄.使用该--harmony标志,以下代码会产生语法错误:

for (let i = 0; i < 2; i += 1) {
    console.log('i', i);
}
Run Code Online (Sandbox Code Playgroud)

SyntaxError:非法让扩展模式外的声明

但是,如果我也使用该--use-strict标志,则代码按预期运行.

为什么只使用--harmony标志时会抛出语法错误?什么是扩展模式?与严格模式有什么联系?

javascript ecmascript-6

32
推荐指数
2
解决办法
4840
查看次数

如何测试和/ ES6/ECMAScript 6 JavaScript?

根据标题,我正在尝试测试一些用nodejs运行的ES6 JS编写的AMD模块.

我首先尝试使用Intern:即使--harmony在nodejs中启用后,我最终还是面对了Intern的依赖链,我无法在例如伊斯坦布尔,esprima和其他人中启用Harmony (我为此开了一个问题).

然后我转移到摩卡上,在这里我被卡住...... 奇怪的是.我为nodejs和mocha本身启用了Harmony,这是package.json测试脚本:

"test": "node --harmony node_modules\\mocha\\bin\\mocha tests --harmony --recursive"
Run Code Online (Sandbox Code Playgroud)

我从命令提示符运行为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...]
Run Code Online (Sandbox Code Playgroud)

我也检查了这个SO线程并听说过转发器,但我真的不知道它们是否可以工作,我现在正试图让转换器在这种情况下工作.

关于如何解决这个问题的任何想法,而无需改变代码中传播的所有ES6位?TA.

javascript mocha.js ecmascript-harmony ecmascript-6 intern

5
推荐指数
1
解决办法
2583
查看次数