Node.js 26正式发布:原生Temporal API终于来了,V8升级到14.6

2026年5月5日,Node.js团队正式发布了Node.js 26.0.0版本。这次更新最大的亮点是Temporal API默认启用,同时V8引擎升级到14.6版本,Undici升级到8.0。对于长期受够了JavaScript日期处理问题的开发者来说,这是一个里程碑式的更新。

最重要的变化:Temporal API

为什么需要Temporal?

JavaScript的Date对象一直是开发者的噩梦。它是可变的、时区处理混乱、API设计反人类。多年来,开发者不得不依赖moment.js、date-fns、dayjs等第三方库来处理日期和时间。

Temporal API是TC39委员会制定的全新日期时间标准,旨在彻底替代Date对象。它在Node.js 26中默认启用,无需任何flag即可使用。

Temporal的核心优势

  • 不可变性:所有Temporal对象都是不可变的,避免了Date对象的可变性bug
  • 时区支持:原生支持时区和夏令时处理,不再需要手动计算偏移量
  • 精确到纳秒:支持比毫秒更高精度的时间表示
  • 丰富的类型:提供多种专用类型,如PlainDate、PlainTime、ZonedDateTime、Duration等

快速上手示例

// 获取当前日期时间
const now = Temporal.Now.zonedDateTimeISO();
console.log(now.toString());
// 2026-05-20T10:30:00+08:00[Asia/Shanghai]

// 创建特定日期
const birthday = Temporal.PlainDate.from('1990-06-15');

// 日期计算
const futureDate = now.add({ months: 3, days: 7 });
const diff = now.since(birthday);
console.log(diff.toString()); // P13032D (天数)

// 时区转换
const tokyoTime = now.withTimeZone('Asia/Tokyo');
console.log(tokyoTime.toString());

其他重要更新

V8引擎升级到14.6

V8 14.6带来了JavaScript引擎的性能优化和新特性支持,包括:

  • 更快的正则表达式引擎
  • 改进的垃圾回收策略
  • 更好的WebAssembly支持

Undici升级到8.0

Undici是Node.js内置的HTTP客户端库。8.0版本带来了连接池管理的改进和更好的HTTP/2支持。如果你在项目中直接使用了fetch()undici,这次升级可能会带来性能提升。

重要的废弃和移除

Node.js 26也包含了一些重要的废弃(deprecation)和移除(removal),开发者需要注意:

  • 部分旧版crypto API被标记为废弃
  • 一些内部模块的使用方式发生变化
  • 遵循Node.js的LTS策略,26将在10月进入长期支持

是否应该立即升级?

Node.js 26目前是”Current”版本,将在6个月内成为LTS(长期支持)版本。建议:

  • 个人项目和实验环境:可以立即升级,体验Temporal API
  • 生产环境:建议等待26.x的LTS版本(预计2026年10月),届时稳定性会更好
  • 库和框架维护者:应该尽早测试兼容性,确保你的包在Node.js 26下正常工作

Temporal API会替代moment.js吗?

短期来看,不会。moment.js和dayjs有庞大的用户基础和丰富的生态系统。但长期来看,Temporal API作为语言标准,将会逐渐成为首选方案。对于新项目,建议直接使用Temporal API;对于老项目,可以在下次重构时考虑迁移。

需要注意的是,Temporal API目前只在Node.js 26+中默认可用。如果你的项目需要支持旧版本Node.js或浏览器环境,暂时还需要polyfill或第三方库。

升级指南

使用nvm升级:

# 安装Node.js 26
nvm install 26

# 切换到Node.js 26
nvm use 26

# 验证版本
node -v  # v26.x.x

# 测试Temporal API
node -e "console.log(Temporal.Now.zonedDateTimeISO().toString())"

使用fnm升级:

fnm install 26
fnm use 26
node -v

本文参考来源:Node.js官方博客 – Node.js 26.0.0 Release

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容