Node.js 20 已正式发布,将于 10 月成为 LTS 版本。
值得关注的变化
- 引入权限控制模型 (Permission Model)
- Synchronous import.meta.resolve
- Test Runner 到达稳定状态
- 将 V8 JavaScript 引擎升级到 11.3
- 支持构建单一可执行应用程序
- Ada 升级到 2.0
- 正式支持 ARM64 Windows
- 要求必须指定 WASI 版本
- 引入权限控制模型 (Permission Model)
这项特性目前处于实验性阶段。Node.js 20 的权限控制功能让开发者在程序执行期间限制对特定资源的访问,例如文件系统操作、子进程生成和 worker 线程创建。
通过使用此功能,开发者可以防止他们的应用程序访问或修改敏感数据,或者运行可能有害的代码。
详情查看文档:https://nodejs.org/api/permissions.html#process-based-permissions
- 自定义的 ESM loader hooks 运行在专用线程上
通过加载程序 ( --experimental-loader=foo.mjs
) 提供的 ESM hooks 现在在与主线程隔离的专用线程中运行。这为加载程序提供了一个单独的范围,并确保加载程序和应用程序代码之间没有交叉污染。
- Test Runner 到达稳定状态
此次对 Node.js 20 的更新包括对 test_runner 模块的重要更改。更新之后,该模块已被标记为稳定状态。此前 test_runner 模块是实验性状态,这次更改标志着它是一个可以用于生产环境的稳定模块。
详情查看发布公告。