Node.js 19 正式发布
Node.js 19 在今天正式发布了,此次更新包括将 V8 JavaScript 引擎更新到 10.7,以及默认启用 HTTP (s)/1.1 KeepAlive。
Node.js 18 在本月晚些时候将进入长期支持(LTS),Node.js 19 将取代 Node.js 18 成为 "Current" 版本。
image.pngnode --watch(实验性)
运行时最近增加的一个令人兴奋的功能是支持使用 node --watch 选项在 "watch" 模式下运行。在 "watch" 模式下运行,当导入的文件被改变时,会重新启动进程。
$ node --watch index.js
该功能在 v19.0.0 和 v18.11.0+ 中可用。
默认启用 HTTP (S)/1.1 KeepAlive
从这个版本开始,Node.js 默认将 keepAlive 设置为 true。这意味着任何出站的 HTTP (s) 连接将自动使用 HTTP 1.1 Keep-Alive。默认的 keep-alive 时间是 5 秒。
启用 keep-alive 将提供更好的吞吐量,因为连接在默认情况下被重复使用。
稳定的 WebCrypto
WebCrypto API 现在已经稳定(以下算法除外:Ed25519、Ed448、X25519 和 X448)
使用 globalThis.crypto 或 require('node:crypto').webcrypto 来访问这个模块。
自定义 ESM Resolution 调整
Node.js 已经删除了 --experimental-specifier-resolution 标志。其功能现在可以通过自定义加载器实现。
移除 DTrace/SystemTap/ETW 支持
对 DTrace/SystemTap/ETW 的支持在 v19.0.0 中被移除,主要原因是资源的优先级问题。
如果你有兴趣帮助恢复 DTrace,可以查看该 issue:https://github.com/nodejs/node/issues/44550。
依赖
V8 10.7
V8 引擎已经更新到 10.7 版本,这是 Chromium 107 的一部分。这个版本包括了 JavaScript API 的一个新特性: Intl.NumberFormat。
Intl.NumberFormat v3 API 是一个新的 TC39 ECMA402 第三阶段提案,扩展了先前存在的 Intl.NumberFormat。
llhttp
Node.js 19 搭载了 llhttp@8.1.0
npm
Node.js 19 搭载了 npm@8.19.2
Node.js 18 将进入 LTS
Node.js 18 系列将在下周过渡到长期支持版本。
生命周期
Node.js 14 将在 2023 年 4 月达到生命周期结束,因此建议用户开始计划升级到 Node.js 16(LTS)或 Node.js 18(LTS)。
Node.js 16 (LTS) 将在 2023 年 9 月达到生命周期结束,比原计划 2024 年 4 月提前了。