Javascript “node--harmony”是做什么的?

Javascript “node--harmony”是做什么的?,javascript,node.js,Javascript,Node.js,节点应用程序要求我使用和谐标志运行节点,如: node --harmony app.js 这面和声旗是什么?它做什么?为什么没有它应用程序不能运行 我尝试过查看节点命令行选项(node--help),但也没有提供任何详细信息。节点文档也没有任何帮助。它在节点js中启用了harmony模块: 键入人工节点在harmony标志上有以下内容: --harmony_typeof (enable harmony semantics for typeof) type: bool defa

节点应用程序要求我使用和谐标志运行节点,如:

node --harmony app.js
这面和声旗是什么?它做什么?为什么没有它应用程序不能运行


我尝试过查看节点命令行选项(
node--help
),但也没有提供任何详细信息。节点文档也没有任何帮助。

它在节点js中启用了harmony模块:

键入
人工节点
在harmony标志上有以下内容:

 --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功能的快捷方式(例如,
--harmony\u作用域
--harmony\u代理
,等等)。从中,harmony似乎启用了语言中的新ECMAScript 6功能。没有harmony文件就无法运行的原因是,
app.js
可能使用了新ECMAScript 6标准中不向后兼容的功能(如块范围、代理、集合、映射等)

如节点文档中所述,-harmony标志启用了ES6的非稳定但很快就会稳定的功能

Node.js上--harmony标志的当前行为是仅启用阶段性功能。毕竟,它现在是--es_staging的同义词。如上所述,这些是尚未被视为稳定的完整功能。如果您想安全地运行,特别是在生产环境中,请考虑删除这个运行时标志,直到它在V8上默认运行,并因此在Node.js上运行。如果保持启用状态,则应准备进一步升级Node.js,以便在V8更改其语义以更接近标准时中断代码


如果您想在旧版本的nodejs中运行ECMAScript 6功能,可以使用--harmony标志。
最新版本的node支持ES6,因此不需要--harmony flag,所有ECMAScript 2015(ES6)功能都分为三组,分别用于发货、阶段性和进行中功能:

  • V8认为稳定的所有运输功能都由 Node.js上的默认值,不需要任何类型的运行时标志

  • 阶段性功能,这些功能几乎已完成,但尚未完成 V8团队认为是稳定的,需要运行时标志--harmony

  • 正在进行的功能可以通过其 各自的和谐旗,尽管这是非常不鼓励的,除非 用于测试目的。注意:这些标志由V8公开,并将 可能会在没有任何弃用通知的情况下进行更改


来源

值得一提的是。Harmony命名空间包含以下功能:非常感谢!现在一切都有意义了。顺便说一句,你知道Windows中的
人工节点的等价物是什么吗?:)@jsalonen没有,但是您可以执行
>node--v8选项
来获取引用的内容here@eis在Windows中,有使用
--help
(或
-h
)的惯例;这适用于大多数控制台程序,因此即使没有特定的man命令,
node-h
也可以工作。但不适用于“DOS”命令本身;对于那些你可以做
help dir
help set
,等等的人,叹气。@JonCoombs我认为
/?
更多地用于旧的“dos”命令。但不管怎样,没有一个标准,我想我没有看到过,例如
-h
,使用得太多。模块只是和谐的一个特征。