如何在 nodejs 中使用 ES7(ECMAScript 2016)? 如何在生产中使用它?
在哪个版本的节点中,我不需要使用任何模块来做到这一点?
感谢任何帮助。
答案 0 :(得分:21)
注意:此问题明确涉及ES2016(ES7)。请参阅下面的ES2017(ES8)更新。
ES7只有两个主要特征:
Array.prototype.includes
**
(指数运算符)有关更多信息,请参阅Mozilla开发网络:
根据node.green,它们分别在Node中可用:
请参阅:
取幂是添加到Node的最后一个ES7功能,因此如果要使用没有标志的所有ES7功能,则至少需要Node 7.0。如果您可以使用--harmony
标志,则至少可以使用节点6.5。
6.x版本是LTS(长期支持),因此您可能希望超过7.x,但您需要使用该标志来使用ES7功能。
在撰写本文时,当前版本的Node是:
v8.0 LTS即将发布 - 目前您可以使用Node 8.0的每晚版本。
有关发布计划的更多信息,请参阅:
要下载其他版本 - 请参阅:
回答评论中的问题,async / await是ES2017(ES8)的一个功能,而不是ES2016(ES7),因为这个问题是关于。参见:
节点中的
- 规格:ECMAScript最新草案(ECMA-262)'异步功能的定义'在那个规范中。
- 状态:草稿
- 评论:ES2017中的初始定义。
您可以在:
中使用async / await--harmony
标记的节点7.0 有关详细信息,请参阅:
在您没有async
和await
原生支持的地方,您可以使用Babel:
或略有不同的语法基于生成器的方法,如co
或Bluebird协同程序:
有关详细信息,请参阅这些答案:
它们包含有关兼容性和可能的解决方法的更多信息。
答案 1 :(得分:6)
此网站http://node.green/显示了不同版本的NodeJS与不同版本的ES标准的兼容程度。
答案 2 :(得分:3)
你需要使用--harmony flag例如:
node --harmony server.js