我如何在 nodejs 中使用 ES7?

新手上路,请多包涵

如何在 nodejs 中使用 ES7 (ECMAScript 2016) ?我如何在 生产 中使用它?

在哪个版本的节点中,我不需要使用任何模块来做到这一点?

任何帮助表示赞赏。

原文由 Majid Parvin 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 628
2 个回答

注意:这个问题明确是关于 ES2016 (ES7) 的。请参阅下面的 ES2017 (ES8) 更新。

ES7 只有两个主要特点:

  1. Array.prototype.includes
  2. ** (求幂运算符)

有关详细信息,请参阅 Mozilla 开发网络:

根据 node.green 的说法,它们在 Node 中可用,分别是因为:

  • 带有和谐标志的 5.0 和没有标志的 6.0 (Array.prototype.includes)
  • 6.5 带有和谐标志和 7.0 没有标志(求幂)

看:

求幂是添加到 Node 的最后一个 ES7 特性,所以如果你想使用所有没有标志的 ES7 特性,那么你至少需要 Node 7.0。如果您可以使用 --harmony 标志,那么您至少可以使用 Node 6.5。

6.x 版本是 LTS(长期支持),因此您可能希望它优于 7.x,但您需要该标志才能使用 ES7 功能。

在撰写本文时,Node 的当前版本是:

  • v6.10.3 LTS(推荐给大多数用户)
  • v7.10.0 当前(最新功能)

v8.0 LTS 将很快发布——目前您可以使用 Node 8.0 的夜间构建。

有关发布时间表的更多信息 - 请参阅:

要下载其他版本 - 请参阅:

ES2017 更新

从评论中回答问题,async/await 是 ES2017 (ES8) 的一个特性,而不是这个问题所涉及的 ES2016 (ES7)。看:

  • 规范:ECMAScript 最新草案 (ECMA-262) 该规范中“异步函数”的定义。
  • 状态:草稿
  • 评论:ES2017 中的初始定义。

节点中的异步/等待

您可以在以下位置使用异步/等待:

  • 带有 --harmony 标志的节点 7.0
  • 没有任何标志的节点 7.6

有关详细信息,请参阅:

在你没有对 asyncawait 的原生支持的地方,你可以使用 Babel:

或语法略有不同的基于生成器的方法,如 co 或 Bluebird 协程:

有关详细信息,请参阅这些答案:

它们包括有关兼容性和可能的解决方法的更多信息。

原文由 rsp 发布,翻译遵循 CC BY-SA 3.0 许可协议

这个站点 http://node.green/ 显示了不同版本的 NodeJS 与不同版本的 ES 标准的兼容性级别。

原文由 Adrian Makowski 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏