“node –harmony”是做什么的?
一个节点应用程序需要我用和谐标志运行节点,如:
node --harmony app.js
什么是和谐旗帜? 它做什么,为什么没有它的应用程序不能运行?
我试过查看节点命令行选项( node --help
),但它也没有提供任何细节。 节点文档也没有任何帮助。
打字man node
在和谐旗帜上有这个:
--harmony_typeof (enable harmony semantics for typeof) type: bool default: false --harmony_scoping (enable harmony block scoping) type: bool default: false --harmony_modules (enable harmony modules (implies block scoping)) type: bool default: false --harmony_proxies (enable harmony proxies) type: bool default: false --harmony_collections (enable harmony collections (sets, maps, andweak maps)) type: bool default: false --harmony (enable all harmony features (except typeof)) type: bool default: false
所以--harmony
是实现所有和声特性的一个捷径(例如--harmony_scoping
, --harmony_proxies
等等)。从这个博客文章看来,和声使得语言中的新ECMAScript 6特性成为可能。 你的文件不能和谐运行的原因是因为app.js
可能使用了新的ECMAScript 6标准中的非向后兼容function(比如块范围,代理,集合,映射等)
它使节点js中的和谐模块成为可能: http ://wiki.ecmascript.org/doku.php? id= harmony:modules
正如节点文档中所提到的,–harmony标志使得ES6不稳定,但是很快就会稳定下来
Node.js上–harmony标志的当前行为仅用于启用分步function。 毕竟,它现在是–es_staging的同义词。 如上所述,这些是完成的function,尚未被认为是稳定的。 如果您想要保证安全,特别是在生产环境中,请考虑删除此运行时标志,直到它在V8上以及Node.js上默认为止。 如果保持启用状态,则应该为进一步的Node.js升级做好准备,以便在V8更改其语义以更紧密地遵循标准时更改代码。
如果要在较早版本的nodejs中运行ECMAScript 6function,可以使用–harmony标志。 最新版本的节点支持ES6,所以不需要–harmony标志