Node.js 24 的主要更新内容(What’s New in Node.js 24)
-
V8 引擎升级到 v13.6
- 支持新的 JavaScript 特性:
Float16Array。 (OpenJS Foundation) - 引入 显式资源管理(explicit resource management),更好地管理资源释放。 (AppSignal Blog)
- 新增
RegExp.escape方法:方便构造安全的正则表达式。 (OpenJS Foundation) - WebAssembly 的 Memory64 支持,即 64 位内存。 (AppSignal Blog)
- 新增
Error.isError:判断对象是否为标准 Error 实例更可靠。 (AppSignal Blog)
- 支持新的 JavaScript 特性:
-
npm 升级到 v11
- 默认捆绑 npm 11,性能、安全性提升。 (nodejs.org)
- 与现代 JS 工具链跟包生态兼容性更好。 (OpenJS Foundation)
-
AsyncLocalStorage
- 默认使用
AsyncContextFrame实现,比之前更高效。 (OpenJS Foundation) - 对于做异步上下文管理(例如请求上下文追踪、日志、分布式追踪)很有帮助。
- 默认使用
-
URLPattern API 变为全局
- 以前需要
require('urlpattern')或从模块导入,现在可以直接用URLPattern。 (nodejs.org) - 用于 URL 匹配和提取,比以前更方便。
- 以前需要
-
权限模型(Permission Model)
- 在 Node 20 引入的实验权限模型更稳定。 (OpenJS Foundation)
- 启动参数简化为
--permission(不再是以前复杂 flag)。 (OpenJS Foundation) - 可以限制访问文件系统、网络、环境变量,非常适合运行更安全的脚本或 sandbox 场景。 (AppSignal Blog)
-
内置测试运行器(Test Runner)增强
- 测试框架现在会 自动等待子测试完成,不再需要手动
await每个子test。 (AppSignal Blog) - 让写异步测试、子测试更简单、更不容易出错。 (OpenJS Foundation)
- 测试框架现在会 自动等待子测试完成,不再需要手动
-
HTTP 客户端升级 - Undici 7
- Node.js 24 默认内置 Undici 7(用来做 HTTP 请求)。 (OpenJS Foundation)
- 性能更好、连接池机制更强、协议支持更现代。
-
移除 / 弃用部分旧 API
- Windows 平台编译工具:去掉对 MSVC 的支持,改为必须用 ClangCL。 (nodejs.org)
- 部分老旧 API 被弃用或移除(例如某些错误处理方式、旧 TLS 方法等)。 (AppSignal Blog)
-
生命周期 / 支持策略
- Node.js 24 会在 2025 年 10 月进入 LTS(Long-Term Support) 阶段。 (OpenJS Foundation)
- 这意味着现在是个测试和评估迁移的好时机。
✅ 升级建议和注意事项
- 测试兼容性:把你的项目(特别是依赖了异步上下文、HTTP、URL 处理、测试逻辑的)在 Node 24 上跑一遍,看看是否有兼容性问题。
- 重建本地依赖:使用原生模块(比如 C++ 插件)的项目,升级 V8 后可能需要重新编译。
- 更新脚本 /构建流程:如果你在启动脚本里使用了实验权限 flag (
--experimental-permission),需要改成新版本--permission。 - 重构弃用 API:检查并替换那些被弃用或移除的老 API。
- 安全考虑:新权限模型可以帮你做更细粒度的安全控制,可考虑在某些服务(例如 worker、子进程)中使用。