Node.js 20.6.0 版本更新总结
Node.js 团队近期发布了 20.6.0 版本,此次更新在环境变量配置、模块解析、模块定制以及实验性支持 C++ 垃圾回收等方面带来了多项改进。
主要更新内容
- 内置支持
.env文件
开发者现在可以通过.env文件简化环境变量的配置。这些文件遵循 INI 文件格式,开发者可以使用命令行node --env-file=config.env index.js轻松初始化应用程序的预定义配置。这一更新简化了环境变量的管理流程。 import.meta.resolve(specifier)函数 unflagged
该调整使 Node.js 与其他服务器端运行时和浏览器更加兼容。import.meta.resolve(specifier)函数现在返回模块解析的绝对 URL 字符串,增强了跨平台兼容性,简化了不同环境下的模块管理。node:module命名空间中的registerAPI
新增的registerAPI 简化了模块定制钩子的使用。开发者可以指定一个导出这些钩子的文件,并促进主应用程序线程与钩子线程之间的通信。建议开发者使用--import与register结合的方式来实现高效的钩子注册。- 模块定制加载钩子增强
模块定制加载钩子现在可以同时处理 ES 模块和 CommonJS 源,增加了灵活性,简化了 Node.js 模块的加载和定制过程,减少了对已弃用 API 的依赖。 - 实验性支持 C++ 垃圾回收
Node.js C++ 插件现在支持实验性的 C++ 垃圾回收,增强了与 V8 内存管理的兼容性。Node.js 启动时将使用v8::CppHeap,允许通过 V8 的<cppgc/*>头文件进行内存分配。尽管在次要版本和补丁更新中稳定性可能有所变化,但 C++ 垃圾回收在 Chromium 中表现良好,为 C++ 插件开发提供了新的选择。
Node.js 20 的重要更新
Node.js 20 于 2023 年 4 月 发布,带来了多项重要变化,包括:
- 支持 ES2023
Node.js 20 拥抱了 ES2023 规范,提供了对最新 JavaScript 语言特性的支持。 - 实验性支持 WebAssembly 系统接口 (WASI)
新增了对 WASI 的实验性支持,扩展了 WebAssembly 在 Node.js 中的应用场景。 - 性能与稳定性提升
V8 JavaScript 引擎更新至 11.3 版本,进一步提升了性能与稳定性。 - 增强安全性
引入了实验性权限模型,增强了应用程序的安全性。 - 稳定的测试运行器
Node.js 20 提供了一个稳定的测试运行器,简化了测试流程。 - 单可执行应用程序支持
新增了对单可执行应用程序的支持,使开发者可以在未安装 Node.js 的系统上分发应用程序。 - 支持新操作系统和改进 TypeScript 兼容性
Node.js 20 增加了对新操作系统的支持,并改进了与 TypeScript 的兼容性。 - 新开发者工具和 API
引入了新的开发者工具和 API,进一步巩固了 Node.js 的生态系统。
长期支持 (LTS) 计划
Node.js 20 目前处于测试阶段,并计划于 2023 年 10 月 24 日 转为长期支持 (LTS) 版本。这意味着在未来至少三年内,Node.js 20 将持续获得包括安全更新和错误修复在内的支持。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。