Node 0.12 ES6 多方字符串 ` 标识报错


环境:


 $ node -v
v0.12.7

代码:


 console.log(`string text line 1
string text line 2`);

运行:


 $node --harmony test.js

报错:


 console.log(`string text line 1
            ^
SyntaxError: Unexpected token ILLEGAL
    at exports.runInThisContext (vm.js:73:16)
    at Module._compile (module.js:443:25)
    at Object.Module._extensions..js (module.js:478:10)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Function.Module.runMain (module.js:501:10)
    at startup (node.js:129:16)
    at node.js:814:3

node.js es6

超威包大人 9 years, 7 months ago

node.js里面的v8版本太低,是三点几,所以不支持这些ES6特性,包括模板字符串定义,你可以换用iojs,目前最新版本的iojs内嵌的v8版本为4.4,已经支持相当多的ES6特性了即将发布的iojs内嵌v8 4.5,已经支持了箭头函数 arr.map(v=>v*v) )等语法糖。
目前v8对ES6支持的力度在加强,let、const等标识符早已支持,class的语法虽然有问题,但也在严格模式下实现了,多行模板字符串、箭头函数也已经到位了,还有一些正在实现中:比如三点号形参和三点号实参,形参默认值等等。
iojs一般跟进v8比较快,所以你可以使用它来满足你的需求。
如果要使用node0.12并且想用ES6语法的话,你可以用babel做预编译工具,部署工具pm2内嵌支持了babel,也可以使用。

亂刀舞死80口 answered 9 years, 7 months ago

Your Answer