Node.js 2023 版本已发布

Node.js 20.6.0 版本更新总结

Node.js 团队近期发布了 20.6.0 版本,此次更新在环境变量配置、模块解析、模块定制以及实验性支持 C++ 垃圾回收等方面带来了多项改进。

主要更新内容

  1. 内置支持 .env 文件
    开发者现在可以通过 .env 文件简化环境变量的配置。这些文件遵循 INI 文件格式,开发者可以使用命令行 node --env-file=config.env index.js 轻松初始化应用程序的预定义配置。这一更新简化了环境变量的管理流程。
  2. import.meta.resolve(specifier) 函数 unflagged
    该调整使 Node.js 与其他服务器端运行时和浏览器更加兼容。import.meta.resolve(specifier) 函数现在返回模块解析的绝对 URL 字符串,增强了跨平台兼容性,简化了不同环境下的模块管理。
  3. node:module 命名空间中的 register API
    新增的 register API 简化了模块定制钩子的使用。开发者可以指定一个导出这些钩子的文件,并促进主应用程序线程与钩子线程之间的通信。建议开发者使用 --importregister 结合的方式来实现高效的钩子注册。
  4. 模块定制加载钩子增强
    模块定制加载钩子现在可以同时处理 ES 模块和 CommonJS 源,增加了灵活性,简化了 Node.js 模块的加载和定制过程,减少了对已弃用 API 的依赖。
  5. 实验性支持 C++ 垃圾回收
    Node.js C++ 插件现在支持实验性的 C++ 垃圾回收,增强了与 V8 内存管理的兼容性。Node.js 启动时将使用 v8::CppHeap,允许通过 V8 的 <cppgc/*> 头文件进行内存分配。尽管在次要版本和补丁更新中稳定性可能有所变化,但 C++ 垃圾回收在 Chromium 中表现良好,为 C++ 插件开发提供了新的选择。

Node.js 20 的重要更新

Node.js 20 于 2023 年 4 月 发布,带来了多项重要变化,包括:

  1. 支持 ES2023
    Node.js 20 拥抱了 ES2023 规范,提供了对最新 JavaScript 语言特性的支持。
  2. 实验性支持 WebAssembly 系统接口 (WASI)
    新增了对 WASI 的实验性支持,扩展了 WebAssembly 在 Node.js 中的应用场景。
  3. 性能与稳定性提升
    V8 JavaScript 引擎更新至 11.3 版本,进一步提升了性能与稳定性。
  4. 增强安全性
    引入了实验性权限模型,增强了应用程序的安全性。
  5. 稳定的测试运行器
    Node.js 20 提供了一个稳定的测试运行器,简化了测试流程。
  6. 单可执行应用程序支持
    新增了对单可执行应用程序的支持,使开发者可以在未安装 Node.js 的系统上分发应用程序。
  7. 支持新操作系统和改进 TypeScript 兼容性
    Node.js 20 增加了对新操作系统的支持,并改进了与 TypeScript 的兼容性。
  8. 新开发者工具和 API
    引入了新的开发者工具和 API,进一步巩固了 Node.js 的生态系统。

长期支持 (LTS) 计划

Node.js 20 目前处于测试阶段,并计划于 2023 年 10 月 24 日 转为长期支持 (LTS) 版本。这意味着在未来至少三年内,Node.js 20 将持续获得包括安全更新和错误修复在内的支持。

阅读 40
0 条评论