---
title: "Node.js 27 首個 alpha 版本推出 改用 V8 15.6 並要求 OpenSSL 3 以上"
url: https://sammy.hk/nodejs-27-alpha-released/
author: Ethan
published: 2026-10-31T18:11:00+08:00
modified: 2026-10-31T18:11:00+08:00
description: "Node.js 於 2026 年 10 月 29 日發布 27.0.0-alpha.0.0.0，是下一個大版本的首個 alpha 測試版，由 Rafael Gonzaga 在官方部落格公布。這次升級把 V8 引擎由 14.6 推上 15.6.75.13，OpenSSL 升至 4.1.0，npm 升至 12.1.0，同時…"
categories: ["開放源碼"]
tags: [JavaScript, Node.js, OpenSSL, V8]
source: https://sammy.hk
---
Node.js 於 2026 年 10 月 29 日發布 27.0.0-alpha.0.0.0，是下一個大版本的首個 alpha 測試版，由 Rafael Gonzaga 在官方部落格公布。這次升級把 V8 引擎由 14.6 推上 15.6.75.13，OpenSSL 升至 4.1.0，npm 升至 12.1.0，同時帶來多項 semver-major 的破壞性變更。同一時間，24.22.2（LTS）與 26.13.0 兩個分支亦有維護更新 \[1\]。

## 引擎與語言特性

V8 15.6 預設啟用一批新語法與 API，包括 `Math.sumPrecise()`、`Intl.Locale.prototype.variants`、`Iterator.prototype.join()`、`Iterator.prototype.includes()`、`Iterator.zip()` 與 `Iterator.zipKeyed()`。仍有旗標控制的實驗功能則有 `import defer`（`--js-defer-import-eval`）、不可變 `ArrayBuffer`（`--js-immutable-arraybuffer`）與 RegExp buffer boundaries。

記憶體行為的改動值得留意：在沒有設定 `--max-old-space-size` 時，預設堆疊上限改為實體記憶體的一半，並夾在 256MB 至 4GB 之間；同時 `Buffer` 與 `ArrayBuffer` 佔用的記憶體現在會計入堆疊上限。以往依賴舊預設值的應用程式，應明確設定 `--max-old-space-size`。

## 可觀察的行為變化

序列化格式亦有變：`v8.serialize()`、`structuredClone()` 與 `postMessage()` 採用的新格式，舊版 Node.js 無法讀取；`v8.cachedDataVersionTag()` 與編譯快取改為在每個 V8 修補版本都會變動，不再只在 V8 大版本更新時才失效。

其他可觀察差異包括：`Math` 方法改用 LLVM 的 libm，最後一位可能與以往不同；`Math.random()` 在指定 `--random-seed` 下的序列會改變；`error.stack` 不再沿原型鏈查找；`await` 產生的 microtask 減少；大型陣列的 `Array.prototype.sort()` 改用 PowerSort，但仍然穩定。堆積快照現時包含內部物件、數值與完整指令碼原始碼，因此產生時間與檔案大小約為以往的兩倍。WebAssembly 方面，asm.js 不再被編譯成 WebAssembly，`--experimental-wasm-` 旗標統一改名為 `--wasm-` \[1\]。

## 加密與建置要求

建置層面收緊得最明顯：必須使用 OpenSSL 3 或以上，內建的 FIPS provider 已被移除，OpenSSL engine 支援正式結束，同時清走多條 legacy OpenSSL 程式碼路徑，`ncrypto` 的舊 OpenSSL 後端亦被刪除，文件中的 OpenSSL 1.x 說明一併移除。

crypto 模組亦加強輸入驗證，`Hash`、`Cipher`／`Decipher` 的 update 與 digest 輸出編碼都會檢查；對未初始化的 DH `computeSecret` 改為拋出錯誤，Web Crypto 的 buffer 參數拒絕可調整大小的 backing store。多個棄用項目進入生命週期終點，包括 DEP0093、DEP0198、DEP0203 與 DEP0204。

## 升級注意

`domain` 模組已改為 runtime 棄用，內部實作改為建基於 `AsyncLocalStorage`，長期依賴 `domain` 的舊專案應及早遷移。`fs` 加入原生 `glob` 實作，`mkdtemp` 在 prefix 為 Buffer 時回傳 Buffer；`http` 的 `keepAliveTimeout` 預設值由 5 秒提高至 65 秒，`req.headers` 改為 null prototype，超出 header 限制的回覆會被拒絕，未使用 `new` 建立 `http` 物件亦已 runtime 棄用。`http2` 預設視窗大小同時加大，對高延遲網絡的吞吐有影響。此外，Intel macOS 支援被降級為 experimental，官方二進位工具鏈亦已更新。

Node.js 27 目前只是 alpha，未進入 LTS 線，不適合生產環境；由 26 升級前應先在測試環境驗證序列化相容性與記憶體上限行為 \[1\]\[2\]。

## 參考資料

\[1\] [Node.js 27.0.0-alpha.0.0.0 (Alpha)（2026-10-29）](https://nodejs.org/en/blog/release/v27.0.0-alpha.0.0.0)

\[2\] [Node.js 版本發布時間表](https://nodejs.org/en/about/previous-releases)

### 相關文章：

1. [Ubuntu 26.10 全面轉向 Rust：核心工具、OpenPGP 與 OpenSSL 4.0](https://sammy.hk/ubuntu-26-10-%e5%85%a8%e9%9d%a2%e8%bd%89%e5%90%91-rust%ef%bc%9a%e6%a0%b8%e5%bf%83%e5%b7%a5%e5%85%b7%e3%80%81openpgp-%e8%88%87-openssl-4-0/ "Ubuntu 26.10 全面轉向 Rust：核心工具、OpenPGP 與 OpenSSL 4.0")
2. [Alpine Linux 四個分支同步更新：修正 eMudhra 憑證、OpenSSL 與 PHP 漏洞](https://sammy.hk/alpine-linux-branch-emudhra-openssl-php/ "Alpine Linux 四個分支同步更新：修正 eMudhra 憑證、OpenSSL 與 PHP 漏洞")
3. [Linux Forum Asia 2005 之後感](https://sammy.hk/linux-forum-asia-2005-%e4%b9%8b%e5%be%8c%e6%84%9f/ "Linux Forum Asia 2005 之後感")
4. [重新安裝 Serendipity](https://sammy.hk/reinstall-serendipity/ "重新安裝 Serendipity")
