Node.js 19 在今天正式發(fā)布了,此次更新包括將 V8 JavaScript 引擎更新到 10.7,以及默認(rèn)啟用 HTTP (s)/1.1 KeepAlive。
Node.js 18 在本月晚些時(shí)候?qū)⑦M(jìn)入長(zhǎng)期支持(LTS),Node.js 19 將取代 Node.js 18 成為 "Current" 版本。

node --watch(實(shí)驗(yàn)性)
運(yùn)行時(shí)最近增加的一個(gè)令人興奮的功能是支持使用 node --watch 選項(xiàng)在 "watch" 模式下運(yùn)行。在 "watch" 模式下運(yùn)行,當(dāng)導(dǎo)入的文件被改變時(shí),會(huì)重新啟動(dòng)進(jìn)程。
$ node --watch index.js
該功能在 v19.0.0 和 v18.11.0+ 中可用。
默認(rèn)啟用 HTTP (S)/1.1 KeepAlive
從這個(gè)版本開始,Node.js 默認(rèn)將 keepAlive 設(shè)置為 true。這意味著任何出站的 HTTP (s) 連接將自動(dòng)使用 HTTP 1.1 Keep-Alive。默認(rèn)的 keep-alive 時(shí)間是 5 秒。
啟用 keep-alive 將提供更好的吞吐量,因?yàn)檫B接在默認(rèn)情況下被重復(fù)使用。
穩(wěn)定的 WebCrypto
WebCrypto API 現(xiàn)在已經(jīng)穩(wěn)定(以下算法除外:Ed25519、Ed448、X25519 和 X448)
使用 globalThis.crypto 或 require('node:crypto').webcrypto 來(lái)訪問(wèn)這個(gè)模塊。
自定義 ESM Resolution 調(diào)整
Node.js 已經(jīng)刪除了 --experimental-specifier-resolution 標(biāo)志。其功能現(xiàn)在可以通過(guò)自定義加載器實(shí)現(xiàn)。
移除 DTrace/SystemTap/ETW 支持
對(duì) DTrace/SystemTap/ETW 的支持在 v19.0.0 中被移除,主要原因是資源的優(yōu)先級(jí)問(wèn)題。
如果你有興趣幫助恢復(fù) DTrace,可以查看該 issue:https://github.com/nodejs/node/issues/44550。
依賴
V8 10.7
V8 引擎已經(jīng)更新到 10.7 版本,這是 Chromium 107 的一部分。這個(gè)版本包括了 JavaScript API 的一個(gè)新特性: Intl.NumberFormat。
Intl.NumberFormat v3 API 是一個(gè)新的 TC39 ECMA402 第三階段提案,擴(kuò)展了先前存在的 Intl.NumberFormat。
llhttp
Node.js 19 搭載了 llhttp@8.1.0
npm
Node.js 19 搭載了 npm@8.19.2
Node.js 18 將進(jìn)入 LTS
Node.js 18 系列將在下周過(guò)渡到長(zhǎng)期支持版本。
生命周期
Node.js 14 將在 2023 年 4 月達(dá)到生命周期結(jié)束,因此建議用戶開始計(jì)劃升級(jí)到 Node.js 16(LTS)或 Node.js 18(LTS)。
Node.js 16 (LTS) 將在 2023 年 9 月達(dá)到生命周期結(jié)束,比原計(jì)劃 2024 年 4 月提前了。