Node.js 24 (Krypton) 升级为 LTS — V8 13.6、npm 11 和 Windows 工具链的转变

Node.jsRuntimeDevOps

关键更新

Node.js 24(代号 "Krypton")于 2025-10-28 进入长期支持。(nodejs.org) 它整合了几个影响生产构建和 CI 的平台变更:V8 升级到 13.6,npm 升级到 11,URLPattern 全局暴露,AsyncLocalStorage 现在默认使用 AsyncContextFrame,包含 Undici 7,并且实验性的权限标志已简化为 --permission。对于在 Windows 上构建 Node 或本地插件的团队来说,MSVC 支持被移除,现在需要使用 ClangCL 从源代码编译 Node。(nodejs.org) 一个已知的 Buffer.allocUnsafe 行为(零填充缓冲区)出现在 24.x 版本中,但在第一个 LTS 补丁发布(v24.11.1)中修复了。(nodejs.org)

重要性

这是一个实际的迁移里程碑,而不是一个表面上的提升。可操作的影响:

  • 依赖 V8 内部的本地模块和任何代码需要重建和验证,因为 V8 13.6 提升了 ABI 并引入了新的全局变量;在暂存环境中进行测试和重建。(nodejs.org)
  • 之前假设使用 MSVC 的 Windows CI 镜像必须更新以提供 ClangCL 工具链(或使用官方 Node 二进制文件)——不这样做将会破坏源构建和本地插件编译。(nodejs.org)
  • Async 上下文传播和跟踪/监控工具应针对 AsyncContextFrame 默认值进行验证,以检测请求/跟踪关联中的微妙行为变化。(nodejs.org)
  • npm 11 和 Undici 7 可能会影响安装性能、锁定文件行为和 CI/monorepo 工作流中的 HTTP 客户端语义——在 Node 24 LTS 镜像上运行 CI 作业,以便及早观察回归。(nodejs.org)
  • 由于存在 Buffer.allocUnsafe 回归并已被修复,请将您的暂存/生产镜像固定在第一个修补的 LTS(v24.11.1),并在推出之前运行低级加密/KDF 测试(例如,pbkdf2 路径)。(nodejs.org)

来源

继续阅读