2025 年 10 月 28 日,Node.js 项目组发布了 v24.11.0 版本。这个版本标志着 Node.js 24 正式进入长期支持(LTS)阶段。开发者现在可以在生产环境中放心使用这个版本了。
Node.js 各版本发布时间表如下:
什么是 LTS 版本
LTS 是 Long Term Support 的缩写。它代表长期支持版本。
Node.js 的 LTS 版本会持续获得维护和更新。这些更新包括安全补丁、bug 修复和性能优化。
对于生产环境来说,LTS 版本是最佳选择。它提供了稳定性和可靠性的保证。
Node.js 24 LTS 的基本信息
Node.js 24 的 LTS 代号是 "Krypton"。这个代号来自元素周期表中的氪元素。
这个版本将持续获得支持,直到 2028 年 4 月底。在这段时间内,开发者可以获得官方的技术支持和更新。
从技术角度看,v24.11.0 和之前的 v24.10.0 没有太大差异。主要的变化是更新了元数据信息。例如 process.release 对象现在会显示这是一个 LTS 版本。
平台支持的重要变化
Node.js 24 在平台支持方面做出了一些调整。开发者需要注意这些变化。
不再支持的平台
从 Node.js 23 开始,官方不再提供 32 位 Windows(x86)的预编译版本。
从 Node.js 24 开始,官方不再提供 32 位 Linux armv7 的预编译版本。
如果你还在使用这些平台,需要考虑升级硬件或使用更早的 Node.js 版本。
macOS 的最低版本要求
macOS 用户需要注意系统版本要求。
Node.js 24 的预编译版本要求 macOS 13.5 或更高版本。如果你的系统版本较低,需要先升级系统。
Linux 平台的兼容性
Linux 系统的用户可以放心。
Node.js 24 在 arm64、ppc64le、s390x 和 x64 架构上继续兼容 glibc 2.28 及以上版本。这个要求和 Node.js 22 保持一致。
OpenSSL 3.5 的升级
Node.js 24 LTS 内置了 OpenSSL 3.5 版本。这是一个重要的安全组件升级。
OpenSSL 3.5 默认使用安全级别 2。这个级别对加密算法有一些要求:
首先,RSA、DSA 和 DH 密钥长度必须至少为 2048 位。
其次,椭圆曲线密钥必须至少为 224 位。
最后,不允许使用 MD5 和 SHA-1 算法进行签名。
这些限制提高了安全性。但如果你的应用依赖较弱的加密算法,可能会遇到兼容性问题。
需要注意的已知问题
Node.js 24.x 系列目前有一个已知问题。开发者需要了解这个问题。
问题涉及到 Buffer.allocUnsafe API。这个 API 本应返回未初始化的内存。但在当前版本中,它意外地返回了填充为零的缓冲区。
官方文档说明这个 API 应该返回未初始化的内存。下一个 Node.js 24.x LTS 版本会恢复正确的行为。
这个变化可能会影响依赖未初始化内存行为的代码。开发者需要提前测试和准备。
从 Node.js 22 迁移
如果你正在使用 Node.js 22 LTS,迁移到 Node.js 24 需要注意一些破坏性变化。
加密模块的变化
crypto 模块在生成 RSA-PSS 密钥对时,一些参数名称发生了变化。
旧的参数名 hash、mgf1Hash 和 saltLength 已被废弃。新的参数名分别是 hashAlgorithm、mgf1HashAlgorithm 和 saltLength。
你需要更新代码中的参数名称。
文件系统 API 的调整
fs.truncate 在使用文件描述符时会给出警告。官方建议改用 fs.ftruncate。

