node24更细哪些内容

108 阅读3分钟

Node.js 24 的主要更新内容(What’s New in Node.js 24)

  1. 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)
  2. npm 升级到 v11

    • 默认捆绑 npm 11,性能、安全性提升。 (nodejs.org)
    • 与现代 JS 工具链跟包生态兼容性更好。 (OpenJS Foundation)
  3. AsyncLocalStorage

    • 默认使用 AsyncContextFrame 实现,比之前更高效。 (OpenJS Foundation)
    • 对于做异步上下文管理(例如请求上下文追踪、日志、分布式追踪)很有帮助。
  4. URLPattern API 变为全局

    • 以前需要 require('urlpattern') 或从模块导入,现在可以直接用 URLPattern。 (nodejs.org)
    • 用于 URL 匹配和提取,比以前更方便。
  5. 权限模型(Permission Model)

    • 在 Node 20 引入的实验权限模型更稳定。 (OpenJS Foundation)
    • 启动参数简化为 --permission(不再是以前复杂 flag)。 (OpenJS Foundation)
    • 可以限制访问文件系统、网络、环境变量,非常适合运行更安全的脚本或 sandbox 场景。 (AppSignal Blog)
  6. 内置测试运行器(Test Runner)增强

    • 测试框架现在会 自动等待子测试完成,不再需要手动 await 每个子 test。 (AppSignal Blog)
    • 让写异步测试、子测试更简单、更不容易出错。 (OpenJS Foundation)
  7. HTTP 客户端升级 - Undici 7

    • Node.js 24 默认内置 Undici 7(用来做 HTTP 请求)。 (OpenJS Foundation)
    • 性能更好、连接池机制更强、协议支持更现代。
  8. 移除 / 弃用部分旧 API

    • Windows 平台编译工具:去掉对 MSVC 的支持,改为必须用 ClangCL。 (nodejs.org)
    • 部分老旧 API 被弃用或移除(例如某些错误处理方式、旧 TLS 方法等)。 (AppSignal Blog)
  9. 生命周期 / 支持策略

    • Node.js 24 会在 2025 年 10 月进入 LTS(Long-Term Support) 阶段。 (OpenJS Foundation)
    • 这意味着现在是个测试和评估迁移的好时机。

✅ 升级建议和注意事项

  • 测试兼容性:把你的项目(特别是依赖了异步上下文、HTTP、URL 处理、测试逻辑的)在 Node 24 上跑一遍,看看是否有兼容性问题。
  • 重建本地依赖:使用原生模块(比如 C++ 插件)的项目,升级 V8 后可能需要重新编译。
  • 更新脚本 /构建流程:如果你在启动脚本里使用了实验权限 flag (--experimental-permission),需要改成新版本 --permission
  • 重构弃用 API:检查并替换那些被弃用或移除的老 API。
  • 安全考虑:新权限模型可以帮你做更细粒度的安全控制,可考虑在某些服务(例如 worker、子进程)中使用。