Node.js 在 2026 年 10 月 28 日發布 26.13.0,代號 Lithium,並把 26.x 轉為 Long Term Support。官方表示這條版本線預計持續更新到 2029 年 4 月底。對網站與企業系統而言,這代表 Node.js 26 已從供套件作者與先行團隊驗證的 Current 階段,進入適合規劃正式環境採用的 LTS 階段。
LTS 不是「今天就要全部升級」,也不是「套件一定相容」。26.13.0 這個版本本身主要更新 LTS 標記,真正的差異累積在從 Node.js 22、24 或更舊版本跨到 26 的過程。較穩妥的做法是先盤點目前支援期限與部署映像,再用同一份鎖檔、測試與流量情境建立候選環境。
先分清楚版本狀態與升級動機
Node.js 26.13.0 發布說明確認 26.x 已進入 LTS,並提醒從較早 LTS 升級時,Node.js 25 起官方 Linux binary 會連結 libatomic,部分 Linux 發行版可能需要另行安裝。這是部署層面的相容性,不會只靠應用單元測試被發現。
Node.js 版本頁建議 Production 應使用 Active LTS 或 Maintenance LTS,也列出各版本狀態。升級決策應先回答目前版本何時停止維護、主機或平台是否支援目標版、框架及關鍵套件的支援矩陣。仍在受支援的舊 LTS 不必因為新 LTS 出現就當天切換;已經 EOL 的版本則應提高優先級,因為之後不再取得上游安全修正。
Node.js 26.0.0 公告列出這條主要版本的初始變動,包括預設啟用 Temporal、V8 更新與多項棄用或移除。從舊 LTS 跨版時,應閱讀整條版本線的變更與依賴套件說明,不能只看 26.13.0 一分鐘的發布摘要。
先盤點執行環境,再改版本號
建立清單記錄本機開發、CI、Docker base image、雲端 build image、serverless runtime、正式主機與排程工作的 Node.js 來源。有些專案在 package.json 寫了 engines,Dockerfile 卻仍固定舊標籤;有些 CI 用最新版,正式主機仍由系統套件管理。只改其中一處,會造成建置成功但正式執行失敗。
目標版本應使用明確的 26.x 策略並保留鎖檔,不要以無上限的 latest 當正式環境規格。若使用容器,確認映像的 Linux 發行版、CPU 架構、OpenSSL 與原生函式庫;若直接使用官方 Linux binary,特別驗證 libatomic 是否存在。需要編譯 node-gyp、影像處理、瀏覽器自動化、資料庫驅動或其他原生模組的系統,還要重建 binary,而不是沿用舊版快取。
同時清查已停止維護的套件與框架。套件宣告支援 Node.js 26 只是基本條件,仍要檢查實際使用的版本、peer dependencies、安裝腳本與 runtime warning。若安裝需要跳過 peer dependency 檢查或強制編譯,應先解決原因,不要把強制參數當成升級完成。
用可回復的候選環境做五層驗收
第一層是安裝與建置:清除舊版 node_modules 與工具快取,使用鎖檔重新安裝,執行型別檢查、lint、單元測試與 production build。記錄 warning,尤其是棄用 API、ESM/CommonJS 邊界與原生套件訊息。
第二層是啟動與功能:驗證 HTTP 服務、背景 worker、cron、WebSocket、檔案上傳、郵件、金流 callback 與資料庫連線。只測首頁不足以證明企業系統可升級;長時間執行的排程與佇列更容易暴露 timer、連線池或關閉流程差異。
第三層是資料與整合:用測試帳號走過建立、修改、重試、取消及重複通知,確認日期時間、JSON、加密、壓縮與外部 SDK 行為。Node.js 26 預設提供的新 API 不代表應立即重寫既有穩定程式;先確保相同行為,再另案評估重構。
第四層是資源與觀測:在相同流量腳本下比較啟動時間、記憶體、CPU、事件迴圈延遲、錯誤率與慢查詢。沒有量測就不要宣稱新版一定更快;可接受門檻應依既有基準與服務容量設定。
第五層是部署與回滾:先上 Preview 或 staging,再用 canary 或少量實例導入。保留舊 Node.js 映像、鎖檔與部署設定,確認資料庫 migration 是否向後相容。若新版應用寫入舊版無法理解的資料,即使容器可以降版也不是真正可回滾。
外包與維護合約要交付版本證據
網站由外包團隊維護時,驗收不應只收到「已升級 Node」。應要求目標版、各環境實際版本、鎖檔差異、原生套件重建結果、測試報告、已知警告、觀測期間與回滾方式。平台自動升級 runtime 時,也要記錄平台公告與生效範圍,不能假設開發機版本等於正式環境。
若系統仍在 Node.js 22 或 24 且上游與框架都支援,可以把 26 升級排進正常版本週期;若仍在 EOL 版本、無法乾淨重建或依賴停止維護套件,先處理技術債與安全支援比追逐新功能更重要。大型系統可先升工具鏈與 CI,再升非關鍵 worker,最後處理核心 API,降低一次切換的風險。
Node.js 26 進入 LTS 提供的是一個新的穩定升級目標,而不是自動完成的保證。把版本來源、依賴、Linux 函式庫、整合測試、觀測與回滾都納入同一張驗收表,才有辦法在支援期限內完成遷移,又不把正式系統變成第一個測試環境。