Node.js 21 发布总结
Node.js 团队近期发布了 Node.js 21,该版本引入了多项新特性和改进,但由于是奇数版本,不会获得长期支持(LTS)状态。
主要更新内容
V8 引擎更新:
- V8 引擎升级至 11.8 版本,带来了性能提升和新的语言特性,如数组分组(Array grouping)、
ArrayBuffer.prototype.transfer和 WebAssembly 扩展常量表达式(extended-const expressions)。这些改进减少了对第三方库的依赖。
- V8 引擎升级至 11.8 版本,带来了性能提升和新的语言特性,如数组分组(Array grouping)、
fetch 和 WebStreams 模块稳定化:
- fetch 和 WebStreams 模块在 Node.js 21 中被提升为稳定模块。这一变化影响了 WebStreams、FormData、Headers、Request、Response 和 fetch 等模块。
实验性 WebSocket 客户端:
- 新增了内置的 WebSocket 客户端,可通过
--experimental-websocket标志启用。该客户端与浏览器标准兼容,简化了前后端应用的 JavaScript 开发。
- 新增了内置的 WebSocket 客户端,可通过
测试运行器改进:
- 测试运行器支持
--test参数使用 glob 表达式,使得跨多个目录的测试执行更加高效和灵活。
- 测试运行器支持
实验性模块默认类型标志:
- 引入了
--experimental-default-type标志,允许开发者自定义默认模块系统,指定输入文件应被解释为 ES 模块还是 CommonJS。
- 引入了
性能优化:
- Node.js 21 包含了对 URL、fetch、流、
node:fs和 HTTP 等模块的性能优化,旨在提升整体运行时性能。
- Node.js 21 包含了对 URL、fetch、流、
全局 navigator 对象集成:
- 新增了全局
navigator对象,增强了与 web 的互操作性。开发者可以通过navigator.hardwareConcurrency访问硬件并发信息。
- 新增了全局
其他重要信息
发布周期:
- Node.js 21 作为当前版本,其状态将持续六个月,直到 2024 年 4 月。Node.js 16(LTS)已结束生命周期(EOL),开发者应计划升级到 Node.js 18(LTS)或 Node.js 20(LTS)以获得持续支持。
开发者建议:
- Node.js 技术指导委员会成员 Rafael Gonzaga 鼓励用户尝试 Node.js 21,认为这是一个探索新特性的好机会。但对于已部署或计划部署的项目,建议使用 Node.js 20 或 18(LTS)版本。
完整更新列表:
- 详细的更新内容可在 Node.js 21 的 GitHub 项目中查看。
总结
Node.js 21 带来了多项新特性和改进,特别是在性能、模块稳定性和测试工具方面。然而,由于它不是 LTS 版本,建议生产环境用户继续使用 Node.js 18 或 20 版本。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。