首页  >  文章  >  web前端  >  Node.js 如何发展对 ES6 模块的支持?

Node.js 如何发展对 ES6 模块的支持?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-07 21:08:03196浏览

How has Node.js evolved its support for ES6 Modules?

Node.js 计划支持 ES6 模块:深入了解

Node.js JavaScript 运行时环境长期以来一直支持 CommonJS 模块用于加载外部代码。然而,随着 ES6 (ECMAScript 2015) 的出现,原生模块支持的引入引发了一个问题:Node.js 会接受导入/导出模块吗?

Node.js 13.2.0 及以后

从 Node.js 13.2.0 开始,引入了对 ES 模块的支持,而无需实验性标志。启用 ECMAScript 模块 (ESM) 支持涉及将 package.json 文件设置为:

{
  "type": "module"
}

所有带有 .js、.mjs 或没有扩展名的文件将被视为 ESM。启用 ES 模块的替代方法也可用,并记录在发行说明中。

Node.js 13.1.0 及更早版本

对于较旧的 Node.js 版本, [esm](https://github.com/standard-things/esm) 模块加载器提供 ES 模块的生产就绪实现:

node -r esm main.js

历史开发时间表

2019 年 4 月 23 日

集成了 ECMAScript 模块检测机制的更新,引入了 package.type(模块或 commonjs)的选项以及用于指定入口点的新选项类型和模块说明符解析。

2019 年 1 月 17 日

Node.js 11.6.0 包含 ES 模块作为实验性功能,使用以下标志启用:

node --experimental-modules index.mjs

计划在 v10.0 LTS 版本中删除此标志。

2017 年 9 月 13 日

添加了 Node.js 8.5.0支持 .mjs 文件,可在标志后面访问:

node --experimental-modules index.mjs

最初的目的是在 v10.0 LTS 版本中删除此标志。

2017 年 9 月 8 日

对 ESM 模块的初始支持已添加到 Node.js 主分支,可以通过 --experimental-modules 标志进行访问。

2017 年 2 月

Node.js 团队宣布决定使用 .mjs 文件扩展名作为破坏性最小的解决方案,允许 CommonJS 和 ES 模块共存。预计实施至少需要一年时间。

2016 年 10 月

TC-39 会议后,一位 Node.js 开发人员概述了实施 ES 模块的挑战。关键问题包括静态与动态分析、猴子修补和模块检测。使用 *.mjs 扩展成为一种可能的解决方案。

2016 年之前

关于 Node.js 中 ES 模块支持的争论已经持续了很长时间相当长的时期。各种提案和讨论旨在解决 Node.js 和 HTML 的不同要求,同时适应新规范。

以上是Node.js 如何发展对 ES6 模块的支持?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn