Node.js Interactive 睽違十年回歸:一年一大版號、node:quic 與供應鏈防線成焦點
Node.js Blog · 2026-08-14
Node.js Interactive 於 2026 年 8 月 12 日至 13 日在美國亞特蘭大舉行,與 RenderATL、Atlanta Tech Week 同場登場,這是該系列大會自 2015 年首屆之後睽違十餘年的回歸。OpenJS Foundation 在官方部落格發布完整場次記錄,內容涵蓋治理、供應鏈安全與執行環境路線圖。核心維運者 Matteo Collina 在會中證實,Node.js 未來將改為一年一次大版號釋出,自 v27.x 起生效。
核心議題
James Snell 在講題中回顧了 node:quic 的實作進度,並提出一套橫跨 HTTP/1.1、HTTP/2 與 HTTP/3(對應 RFC 9114,底層傳輸為 RFC 9000)的統一伺服器 API 構想,目前仍需以 --experimental-quic 旗標啟用。版號政策的改變是本屆最具體的營運面消息:Collina 說明一年一大版號可降低使用者升級壓力,同時讓 TypeScript 型別剝除、node:test、node:sqlite 與 Permission Model 等內建功能有更長的穩定期。Darcy Clarke 則在「Beyond SemVer」講題中,提出以 build metadata 擴充 Semantic Versioning 2.0.0 的做法,嘗試解決純語意化版號難以表達相容性細節的問題。
供應鏈安全與治理
Kate Holterhoff 的講題整理了 2025 至 2026 年間針對 npm 生態系的重大攻擊事件,包括 Shai-Hulud 蠕蟲(第二波據報波及至少 796 個套件)與週下載量上億次的 Axios 套件遭入侵事件,並指出防禦重心正從特徵掃描轉向身分驗證式的供應鏈防線,例如 npm trusted publishing 機制。Joe Sepi 的場次則討論 JavaScript 治理如何與 W3C、Ecma International 協作,特別是 WinterCG(現為 Ecma TC55)推動的跨執行環境互通標準,讓 Node.js、Deno 與 Cloudflare Workers 之間的 API 行為更一致。文件與測試工具方面,Node.js 團隊也發表了新的 doc-kit CLI 取代既有文件產生流程。
影響範圍
對前端與 Node.js 開發者而言,最直接的影響是發布節奏將變得更可預期:從 v27.x 起每年僅一次大版號,降低了追逐 breaking change 的頻率,但也意味著新功能會集中在單一大版號內一次性推出。node:quic 與統一伺服器 API 若成形,將讓 Node.js 應用可用單一介面同時處理 HTTP/1.1、HTTP/2、HTTP/3 流量,值得持續關注其穩定化時程。
原始來源:Node.js Interactive 2026: A Recap、OpenJS Foundation 講者公告
WHATWG 修正 Popover 規格:hint popover 內開啟對話框時該關閉哪些視窗
WHATWG HTML Living Standard(commit ac0389a) · 2026-08-11
WHATWG 在 2026 年 8 月 11 日將一項 Popover 規格修正併入 HTML Living Standard 原始碼,commit ac0389a3 調整了「當 hint popover 內開啟 <dialog> 並呼叫 showModal() 時,應關閉哪些 auto popover」的演算法。這項變更源自 8 月 6 日提出的議題 #12763,修復內容以 pull request #12764 併入,作者為 HTML 規格編輯 Jake Archibald。
背景
Popover API 將彈出視窗依 popover 屬性值分為兩種堆疊:auto popover(下拉選單、選單列等,會因外部點擊而自動關閉)與 hint popover(如 tooltip,疊在 auto popover 之上、行為更輕量)。規格原本規定,只要事件 endpoint 是 hint popover 就直接略過「關閉 auto popover 堆疊」,但 #12763 的測試案例顯示:使用者在 hint popover 內開啟 modal <dialog> 時,畫面上不相關的 auto popover 並未如預期被關閉。issue 作者指出「規格說應該關閉,但 Firefox 與 Chrome 目前都做錯了」。
規格細節
修正後的演算法新增一個 autoEndpoint 變數:當 endpoint 為 hint popover 時,autoEndpoint 改設為該文件的 hint stack parent,而非直接跳過關閉步驟,接著一律執行「hide popover stack until」關閉 auto 堆疊到 autoEndpoint 為止。同一份 commit 也把 light dismiss 路徑上重複撰寫的 hint/auto 判斷邏輯精簡掉,改為呼叫統一的 hide popovers until 函式。
- If endpointIsHint is true, then return.
- Run hide popover stack until given document, endpoint, Auto, ...
+ Let autoEndpoint be endpoint.
+ If endpointIsHint is true, then set autoEndpoint to
+ document's hint stack parent.
+ Run hide popover stack until given document, autoEndpoint, Auto, ...這段調整讓「hint popover 觸發的關閉」與「點擊觸發的 light dismiss」共用同一套 endpoint 計算規則,避免兩處實作各自維護一份幾乎相同、卻可能不同步的邏輯。
影響範圍
由於 issue 中已確認 Firefox 與 Chrome 都不符合規格預期行為,瀏覽器廠商需依這次的規格文字重新對齊 popover 與 dialog 互動時的自動關閉行為。使用原生 popover 屬性搭配 <dialog> 建構 tooltip 巢狀結構的前端專案,應留意日後瀏覽器更新後,tooltip 內彈出對話框的關閉行為可能與現況不同。
Node.js 26.7.0 釋出:STORE loader 私鑰、Perfetto 追蹤與可處置化的 ModuleHooks
Node.js Blog · 2026-08-05
Node.js 專案於 2026 年 8 月 5 日發布 Current 分支的 v26.7.0,由 release 負責人 Antoine du Hamel 主持釋出。此版本收錄超過 140 個 commit,涵蓋 crypto、HTTP/2、streams 與 test runner 等模組的新功能與穩定性調整。多數變更標記為 SEMVER-MINOR,可安全升級。
核心改動
- Crypto 新增透過 STORE loader 載入私鑰的能力(
#63949) - 底層新增 Perfetto 追蹤支援,方便對接 Chrome/Android 生態系的效能分析工具(
#64565) node:module的ModuleHooks實作Symbol.dispose,可搭配using語法做明確資源釋放(#63928)- Test runner 新增
--test-coverage-include-all旗標,涵蓋未被任何測試載入的檔案(#64830)
其他調整
Crypto 模組的根憑證更新至 NSS 3.125,並修正了 KDF 失敗時的錯誤處理、Argon2 FIPS 模式與若干參數驗證問題。FFI 相關程式碼修補了多個 fast call 驗證與當機防護的穩定性問題,HTTP/2 與 stream 模組則針對 pipeTo 逐 chunk 配置記憶體的行為做了效能最佳化。建置端要求的 Rust 版本也調升至 >=1.86。
| 項目 | 版本 |
|---|---|
| npm | 11.19.0 |
| nghttp2 | 1.70.0 |
| sqlite | 3.53.4 |
| NSS root certs | 3.125 |
影響範圍
對維運方而言,Perfetto 追蹤支援讓 Node.js 服務可以更容易被納入既有的系統級效能觀測管線;ModuleHooks 支援 Symbol.dispose 則讓自訂模組載入 hook 的資源清理邏輯更容易寫得正確,減少手動呼叫 unregister 被遺漏的情況。使用 SQLite 內建模組或依賴 FFI 相關 API 的專案,建議直接升級到 v26.7.0 以取得對應的穩定性修正。