节点应用程序要求我运行带有和声标志的节点,例如:
node --harmony app.js
什么是和声旗?它有什么作用?没有它,为什么应用程序无法运行?
我尝试查看节点命令行选项(node --help
),但也未提供任何详细信息。节点文档也没有任何帮助。
节点应用程序要求我运行带有和声标志的节点,例如:
node --harmony app.js
什么是和声旗?它有什么作用?没有它,为什么应用程序无法运行?
我尝试查看节点命令行选项(node --help
),但也未提供任何详细信息。节点文档也没有任何帮助。
如节点文档中所述,--harmony标志启用了ES6的非稳定但即将稳定的功能
Node.js上--harmony标志的当前行为是仅启用分段功能。毕竟,它现在是--es_staging的同义词。如上所述,这些是尚未被认为稳定的完整功能。如果您想安全玩耍,尤其是在生产环境中,请考虑删除此运行时标志,直到默认在V8上(因此,在Node.js上)将其发布。如果启用此功能,则在V8更改其语义以更严格地遵循标准的情况下,应该准备进一步进行Node.js升级以破坏代码。
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标准的非向后兼容功能(例如块范围,代理,集合,地图等)。
如果要在旧版本的nodejs中运行ECMAScript 6功能,则可以使用--harmony标志。最新版本的节点支持ES6,因此不需要--harmony标志