如何在 nodejs 中使用 ES7 (ECMAScript 2016) ?我如何在 生产 中使用它?
在哪个版本的节点中,我不需要使用任何模块来做到这一点?
任何帮助表示赞赏。
原文由 Majid Parvin 发布,翻译遵循 CC BY-SA 4.0 许可协议
如何在 nodejs 中使用 ES7 (ECMAScript 2016) ?我如何在 生产 中使用它?
在哪个版本的节点中,我不需要使用任何模块来做到这一点?
任何帮助表示赞赏。
原文由 Majid Parvin 发布,翻译遵循 CC BY-SA 4.0 许可协议
这个站点 http://node.green/ 显示了不同版本的 NodeJS 与不同版本的 ES 标准的兼容性级别。
原文由 Adrian Makowski 发布,翻译遵循 CC BY-SA 3.0 许可协议
13 回答13k 阅读
7 回答2.1k 阅读
3 回答1.3k 阅读✓ 已解决
3 回答2.7k 阅读✓ 已解决
6 回答1.2k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
注意:这个问题明确是关于 ES2016 (ES7) 的。请参阅下面的 ES2017 (ES8) 更新。
ES7 只有两个主要特点:
Array.prototype.includes
**
(求幂运算符)有关详细信息,请参阅 Mozilla 开发网络:
根据 node.green 的说法,它们在 Node 中可用,分别是因为:
看:
求幂是添加到 Node 的最后一个 ES7 特性,所以如果你想使用所有没有标志的 ES7 特性,那么你至少需要 Node 7.0。如果您可以使用
--harmony
标志,那么您至少可以使用 Node 6.5。6.x 版本是 LTS(长期支持),因此您可能希望它优于 7.x,但您需要该标志才能使用 ES7 功能。
在撰写本文时,Node 的当前版本是:
v8.0 LTS 将很快发布——目前您可以使用 Node 8.0 的夜间构建。
有关发布时间表的更多信息 - 请参阅:
要下载其他版本 - 请参阅:
ES2017 更新
从评论中回答问题,async/await 是 ES2017 (ES8) 的一个特性,而不是这个问题所涉及的 ES2016 (ES7)。看:
节点中的异步/等待
您可以在以下位置使用异步/等待:
--harmony
标志的节点 7.0有关详细信息,请参阅:
在你没有对
async
和await
的原生支持的地方,你可以使用 Babel:或语法略有不同的基于生成器的方法,如
co
或 Bluebird 协程:有关详细信息,请参阅这些答案:
它们包括有关兼容性和可能的解决方法的更多信息。