本文へスキップ

Node.js 27 alpha、V8 15.6を搭載し古いOpenSSLを廃止

10月29日に公開された最初のNode.js 27(ノード・ジェイエス)alphaは、V8を15.6に更新し、OpenSSL 3以降を必須にし、年1回のメジャーリリースという新しい日程を始めます。

著者

3 分で読めます

英語の原文から機械翻訳したものです。原文はClaire Whitmoreが事実確認と編集を行いました。内容に相違がある場合は英語版が優先されます。 編集方針

Node.js 27.0.0-alpha.0.0.0のブログ記事のスクリーンショット。Node.jsのロゴ画像と、リリースノートの目次が並んでいます。

数字で見る

semver-major commits in the first alpha
~100
JavaScript engine, up from 14.6 in Node.js 26
V8 15.6
planned date for Node.js 27.0.0
April 2027
planned end of life for Node.js 27
April 2030

Node.jsプロジェクトは2026年10月29日、最初のNode.js 27 alphaをリリースしました。タグは27.0.0-alpha.0.0.0です。年1回のメジャーリリースという新しい日程で出る最初のビルドです。このalphaはV8 JavaScriptエンジンをバージョン15.6に更新し、OpenSSL 3以降を必須にしています。既存のコードを壊しうる変更であるsemver-majorのコミットが、約100件含まれます。

このalphaは本番環境向けではありません。2027年4月にNode.js 27.0.0が出る数か月前に、テスト用パイプラインで破壊的変更を見つけたいライブラリ作者やチームが対象です。

新しいリリース日程

これまでNode.jsは年に2回メジャーバージョンを出し、長期サポート(LTS)を受けるのは偶数番号だけでした。Node.js 27からは、メジャーリリースは年1回になり、すべてのリリースがLTSになります。プロジェクトのリリース日程に関する投稿によるものです。

各バージョンは、10月から3月までの6か月間をalphaとして過ごします。この期間中もsemver-majorの変更は認められます。alphaビルドは、nightlyビルドと違って署名、タグ付け、テストが行われますが、リリース間でAPIが変わることがあります。

段階Node.js 27
alpha開始2026年10月
27.0.0(Current)2027年4月
LTS入り2027年10月
サポート終了2030年4月

LTSの期間は従来どおり約30か月で、各ラインは最初のCurrentリリースからサポート終了まで36か月です。Node.js 26は、旧モデルで動く最後のラインです。プロジェクトは、この日程は「最終版ではなく、変更される可能性がある」と述べています。

この変更は、TSCメンバーのRafael Gonzaga氏が2025年7月に出した提案から始まった、とInfoQが報じています。目的は、利用者の少ないリリースラインへ修正をバックポートしなければならないメンテナーの負担を軽くすることでした。Gonzaga氏はalphaのリリース投稿も書いています。

alphaで壊れるもの

リリースノートには多数の変更が並んでいます。実際のアプリに影響しやすいものは次のとおりです。

  • OpenSSL 3以降が必須です。 Node.jsはOpenSSL 4.1.0を同梱するようになりました。OpenSSL 4.1.0は10月23日に公開され、DTLS 1.3を備えています。OpenSSLエンジンのサポートは終了しました。
  • ネイティブアドオンは再ビルドが必要です。 NODE_MODULE_VERSIONは153になりました。
  • メモリ上限の既定値が新しくなりました。 --max-old-space-sizeを指定しない場合、ヒープの上限は物理メモリの半分で、256 MBから4 GBの範囲です。BufferとArrayBufferのメモリも、この上限に含まれるようになりました。
  • 新しいシリアライズ形式です。 v8.serialize()、structuredClone()、postMessage()で書き出したデータは、古いNode.jsのバージョンでは読み込めません。
  • HTTPの既定値が変わりました。 既定のkeepAliveTimeoutは65秒に延び、req.headersはnullプロトタイプになりました。
  • Intel Macは実験的サポートになりました。 Intel macOS向けバイナリは「Coming soon」と表示されています。
  • npm 12.1.0が同梱されています。

V8 15.6では、細かな動作も変わります。Mathの関数がLLVMのlibmライブラリを使うようになり、結果の最下位ビットが異なる場合があります。大きな配列は新しいアルゴリズムでソートされますが、ソートは引き続き安定です。新機能としてMath.sumPrecise()とIterator.zip()が加わりました。

domainモジュールは実行時に非推奨となり、権限フラグ--allow-envが追加されました。

Dockerイメージはまだ準備できていません

コンテナでテストするチームは、これが決まるまで待つ必要があります。公式Dockerイメージのメンテナーは、10月30日にNode.js 27の追跡issueをクローズしました。間に合うように準備するには情報が足りない、というのが理由です。alphaイメージにどうタグを付けるかを決めるため、新しいissueを立てる予定です。

バージョン文字列も計画と異なります。計画文書では27.0.0-alpha.1のような例が使われていましたが、最初のビルドは27.0.0-alpha.0.0.0として出ました。

開発者にとっての意味

  • alphaは4月を待たず、今すぐCIに加えましょう。 プロジェクトはライブラリ作者に、できるだけ早く行うよう求めています。alphaのジョブが失敗すれば、27.0.0までの6か月で不具合を直せます。
  • ネイティブモジュールを再ビルドして確認しましょう。 モジュールバージョンが新しくなったため、すべてのネイティブアドオンはNode.js 27向けに新しくビルドし直す必要があります。
  • シリアライズ済みデータを保存しているものはテストしましょう。 あるサービスがv8.serialize()で書き、古いサービスが読む場合、新しい形式ではその経路が壊れます。
  • コンテナではヒープ上限を明示的に設定しましょう。 新しい既定値はホストの物理RAMに連動するため、コンテナの上限と合わないことがあります。
  • LTSだけを使っているなら、今はほとんど変わりません。 alphaが出た時点で、LTSラインはNode.js 26の26.13.0です。そのパッチは引き続き適用してください。10件の脆弱性を修正した10月のセキュリティリリースの場合と同じです。

出典

  1. Node.js 27.0.0-alpha.0.0.0 (Alpha) - Node.js
  2. Evolving the Node.js Release Schedule - Node.js
  3. Node.js Moves to Annual Major Releases - InfoQ
  4. Prepare for Node.js 27 pre-release (Alpha) / release - GitHub (nodejs/docker-node)

関連記事

GitHub Copilotのチャット欄でモデル選択メニューを開き、Copilot Fusionをオンにして、Standard、High、MaxのうちMaxのエフォートレベルを選んだ画面。
開発ツール

Tools This Week:2026年10月30日 - Copilot Fusion、Node.js 27

今週の開発者ツール5本を紹介します。GitHub Copilot Fusion(フュージョン)、Mistral Large 4のオープンウェイト、Android Studio Rabbit 2、OpenSSL 4.1.0、最初のNode.js 27アルファ版です。

Jarred Sumnerによる2026年10月22日付のBunブログ記事「Bun v1.4.4」。インストールとアップグレードのコマンドが見えます。
開発ツール

Bun 1.4.4がbun fmtを追加、Prettier互換のフォーマッター

2026年10月22日公開のBun(バン)1.4.4は、Prettier(プリティア)互換のフォーマッターbun fmtを追加しました。BunによるとPrettier自身のリポジトリのチェックはPrettierより286倍速いとしています。

「Wednesday, October 21, 2026 Security Releases」と題したNode.jsのブログ記事。目次に修正対象のCVEが並んでいます。
開発ツール

Node.js 26.12.1、24.22.1、22.23.4が脆弱性10件を修正

Node.js(ノード・ジェイエス)は2026年10月21日に脆弱性10件を修正しました。うち4件は深刻度「高」で、リモートからのコード実行につながりうるBrotliデコーダーのバグも含まれます。