Node.js 26がLTSになったばかりで、次のメジャー版のことはまだ考えていない。そう感じている開発・保守の担当者も、27の変更点は今のうちに一度見ておく価値があります。2027年4月に出る予定の27.0.0に向けて、互換性を壊す変更が、最初のAlphaの時点でまとまって公開されたからです。
Node.jsは2026年10月29日、27の最初のAlphaとして「27.0.0-alpha.0.0.0」を公開しました。この記事では、Alphaの位置付けを確かめたうえで、業務システムやWebのバックエンドで影響が出やすい変更を、公式のリリースノート、APIドキュメント、11月5日の公式ブログから整理します。
Alphaは本番用ではなく、CIで試すための版
2026年3月10日の公式ブログの告知「Evolving the Node.js Release Schedule」で、27からメジャー版を年1回にすることが示されました。新しい流れは、10月〜3月がAlpha、4月〜10月がCurrent、その後30か月のLTSです。27は2027年4月に27.0.0、2027年10月にLTS、2030年4月に終了の予定です(告知は「This schedule is not final and may be amended.」としています)。
Alphaでは、互換性を壊す変更(semver-major)が認められています。告知はAlphaについて「Not intended for production use.」(本番での利用は想定していない)とし、版の間でAPIが変わりうること、Alphaを出す頻度はリリースチームが決めることを挙げています。ライブラリの作者には、Alphaを早くCIに組み込むよう求めています。
Alphaの使いどころと、26・24・22の版ごとの判断は、Node.js 24の保守期入りと26のLTS化の記事で整理しました。
業務システムで影響が出やすい変更
リリースノートの「Notable Changes」には、V8の15.6への更新(26は14.6)に続き、「Other notable changes」に50件のsemver-majorの変更が並んでいます。そのうち、業務システムやWebのバックエンドで動きが変わりやすいものを選びました。

HTTPサーバーのkeep-aliveの既定が65秒に
http.Server の keepAliveTimeout の既定が5秒から65秒になりました。APIドキュメントの27.0.0-alpha.0.0.0の履歴に「the default value for http.Server.keepAliveTimeout is changed from 5 to 65 seconds」とあります。
ここからは編集部の補足です。ロードバランサーの後ろでNode.jsを動かしている場合、ロードバランサー側のアイドルの時間とNode.js側の時間の関係で、接続の再利用のされ方が変わります。今は5秒の前提で値を合わせている、または既定のまま動かしている構成は、27へ上げる前にロードバランサーの設定と並べて確かめます。同じ接続を長く保つため、同時に開いている接続の数が増えることもありえます。
ヒープの上限の既定が、4GB〜15GBのマシンで大きくなる
--max-old-space-size を指定していない場合、ヒープの上限の既定は、物理メモリまたはcgroup(コンテナのメモリを制限する仕組み)の上限の半分を、256MB〜4GBの範囲に収めた値になります。2026年11月5日の公式ブログ「Notable V8 changes from Node.js 26 to 27 (Alpha)」によると、これまでは物理メモリの半分で、上限は2GB(15GB以上のマシンは4GB)でした。8GBのマシンでは2GBから4GBに、6GBのマシンでは2GBから3GBに増えます。
BufferとArrayBufferが持つメモリも数えられるようになりました。リリースノートは「heap limit」に数えると書き、ブログは「V8’s global allocation limit」に数えるとしたうえで、Bufferを多く使うアプリケーションではガベージコレクションの時期が変わると説明しています。どちらも、従来の既定に頼っていたアプリケーションは --max-old-space-size を明示するよう求めています。
ここからは編集部の補足です。これまで既定の上限でメモリの使用量が抑えられていたサービスは、上限が上がると、より多くのメモリを使う可能性があります。大きなCSVや画像をBufferで扱うバッチは、ガベージコレクションの時期が変わることで、メモリの使われ方が変わるかもしれません。27で試すときは、本番と同じメモリの割り当てで、ピーク時の処理を流して確かめます。
req.headers がプロトタイプを持たないオブジェクトに
リリースノートに「http: make req.headers have a null prototype」とあり、APIドキュメントは message.headers について「The object has a null prototype」と書いています。
編集部の補足です。プロトタイプを持たないオブジェクトには hasOwnProperty などのメソッドがありません。req.headers.hasOwnProperty('authorization') のように書いたコードは、27ではエラーになると考えられます。Object.hasOwn(req.headers, 'authorization') に置き換えておけば、26でも27でも動きます。認証や監査のミドルウェアを自社で書いている場合は、検索して確かめておきます。
structuredClone などの形式が古い版で読めない
v8.serialize()・structuredClone()・postMessage() が新しい形式を使います。11月5日の公式ブログによると、27で書いた値を古いNode.jsで読むと「invalid or unsupported version」のエラーになります。逆に、古い版で書いた値は27で読めます。
編集部の補足です。v8.serialize() の結果をキャッシュやキューに保存する構成では、27と26を並べて動かす移行の間、27が書いた値を26が読めません。版を混在させる期間がある場合は、JSONなどの形式に変えるか、読む側を書く側より先に27へ上げる計画が必要です。
その他、確認しておきたい変更
- OpenSSL: 27のAlphaはOpenSSL 4.1.0を同梱し(26.13.0は3.5.9)、ビルドにはOpenSSL 3以降が必要になりました。OpenSSLのエンジンの対応は終わり、同梱のFIPSのプロバイダーのビルドもなくなります
- 暗号の入力の検証:
cryptoのdigestやupdateの文字コードの指定を検証するようになりました domainモジュール: 実行時に非推奨の警告(DEP0032)が出るようになりました- HTTPのヘッダーの上限: クライアント側で、応答のヘッダーの数が
maxHeadersCountを超えると、切り詰めずにHPE_HEADER_OVERFLOWで拒否するようになりました - npm: 12.1.0を同梱します(26.13.0は11.20.0)
| 変更 | 影響が出やすい場面 | 先に見る場所 |
|---|---|---|
| keepAliveTimeoutの既定65秒 | ロードバランサーの後ろのAPIサーバー | ロードバランサーのアイドルの時間、server.keepAliveTimeout の明示の有無 |
| ヒープの上限の既定と、Bufferの数え方 | 4GB〜15GBのメモリで動くサービス、大きなファイルを扱うバッチ | 起動の引数の --max-old-space-size、コンテナのメモリの割り当て |
req.headers のプロトタイプなし | 自社のミドルウェア | headers.hasOwnProperty の呼び出し |
Intel版のMacで開発している場合
リリースノートに「build: downgrade Intel macOS support to experimental」とあります。この変更のプルリクエスト(#65427)は、27.0.0-alpha.0.0.0からIntel版macOS向けの公式のバイナリの提供をやめるのがよいとし、Intel版のMacの利用者は非公式のバイナリに頼ることになると説明しています。BUILDING.md の「Experimental」も、コアチームがリリースを作らない対象という定義です。
配布物も、この説明と合っています。公式の配布の一覧(index.json)では、26.13.0にあるIntel版macOS向けのtar(osx-x64-tar)が27.0.0-alpha.0.0.0にはなく、SHASUMS256.txt にも darwin-x64 のtarは含まれていません。index.json には osx-x64-pkg の項目が残っていますが、配布されている .pkg を2026年11月6日に展開して調べると、中の node はarm64用の実行ファイルだけでした(実行はしていません)。名前だけを見てIntel版が配布されていると判断しないよう注意が必要です。
nvmなどのtarを取ってくる道具でIntel版のMacに27のAlphaを入れようとすると、取得に失敗する可能性があります。開発チームにIntel版のMacが残っている場合は、27のCurrentが出る2027年4月までに、Apple シリコンのMacか、Linuxのコンテナでの開発に移せるかを検討しておきます。
CIに27のAlphaを足すときの考え方
ここからは編集部の提案です。本番の版は26(または24)のまま変えず、CIのテストに27のAlphaを1つ足して、失敗しても全体を止めない扱いにします。取得は公式の配布元から行い、SHASUMS256.txt で照合します。
V=v27.0.0-alpha.0.0.0
F=node-$V-linux-x64.tar.xz
curl -fsSLO https://nodejs.org/dist/$V/$F
curl -fsSL https://nodejs.org/dist/$V/SHASUMS256.txt | grep " $F\$" | sha256sum -c -
tar xf $F && export PATH="$PWD/node-$V-linux-x64/bin:$PATH"
node -v && npm test
失敗したテストは、上に挙げた変更のどれに当たるかで分けて記録しておくと、27.0.0が出たときの作業量の見積もりに使えます。Alphaは版の間でAPIが変わりうるため、Alphaで直したコードは27.0.0でもう一度確かめます。版の一括更新の進め方は、Node.js 22.23.4への一括更新の記事も参考になります。
本番の版を据え置く場合も、セキュリティ更新は別に当てます。Node.jsは2026年11月3日に、26.x・24.x・22.xの新しい版を11月11日以降に出すと予告しました。最も高い深刻度はHIGHです。この予告の対象に27のAlphaは挙げられていません。
確認した範囲
2026年10月31日に、nodejs.orgのリリースノート「Node.js 27.0.0-alpha.0.0.0 (Alpha)」、告知「Evolving the Node.js Release Schedule」、27.0.0-alpha.0.0.0のAPIドキュメント(HTTP、Deprecated APIs、Domain)、配布の一覧(
index.jsonとSHASUMS256.txt)を直接取得して確認しました(資料調査)。2026年11月6日に同じ資料を確かめ直し、新しいAlphaが出ていないことと、11月5日の公式ブログ、11月11日のセキュリティ更新の予告、nodejs/nodeのプルリクエスト(#65427、#65010)、BUILDING.mdを確認しました。.pkgは展開して実行ファイルの種類だけを調べました。27のAlphaのバイナリは実行しておらず、keep-alive・ヒープ・req.headers・直列化の形式の実際の挙動は確かめていません。hasOwnPropertyがエラーになる点はJavaScriptの仕様からの推測で、ロードバランサーとの関係、CIへの組み込み方は編集部の提案です。上のコマンドの配布元のURLと照合のファイルが存在することは確かめています。
Node.jsで動く業務システムの版の更新計画や、移行前の影響の洗い出しは、開発・AI・自動化のご相談からお問い合わせください。
参考資料
- Node.js 27.0.0-alpha.0.0.0 (Alpha)(Node.js Blog、2026-10-29)
- Evolving the Node.js Release Schedule(Node.js Blog)
- Notable V8 changes from Node.js 26 to 27 (Alpha)(Node.js Blog、2026-11-05)
- Wednesday, November 11, 2026 Security Releases(Node.js Blog)
- HTTP(Node.js v27.0.0-alpha.0.0.0 Documentation)
- Deprecated APIs(Node.js v27.0.0-alpha.0.0.0 Documentation)
- Node.js release index(index.json)
- build: downgrade Intel macOS support to experimental(nodejs/node #65427)
- http: reject responses exceeding header limit(nodejs/node #65010)
- BUILDING.md(nodejs/node、v27.0.0-alpha.0.0.0)









