RELEASE · Node.js v24 LTS
Node.js 24 (Krypton) — Active LTS 入りした最新の長期サポートライン
Node.js 24 が Active LTS に昇格しました。V8 13.6 によって Float16Array や RegExp.escape()、明示的リソース管理 (using 宣言) が利用可能になり、npm 11 とグローバル URLPattern、簡素化された permission CLI も同梱されます。Windows のビルドツールチェーンが ClangCL 必須へ移行した点も含め、本番採用に向けた変更点を整理します。
v22 系からの乗り換え先として安定した長期サポートライン。新しい言語機能を取り込みつつ、Windows ビルド環境だけは事前確認が必要です。
目玉機能
このリリースで追加・改善された主な機能。
V8 13.6 で新しい言語機能が一気に利用可能に
Float16Array、RegExp.escape()、Error.isError()、WebAssembly Memory64、明示的リソース管理 (using / await using) が標準で使えるようになりました。
npm 11 を同梱
依存解決とインストールが高速化され、出力やエラー表示も整理されました。Node.js 24 では npm 11 系が既定です。
URLPattern がグローバルに、AsyncLocalStorage は AsyncContextFrame が既定へ
URLPattern を import なしで使えるようになり、AsyncLocalStorage の内部実装が刷新されてコンテキスト伝搬のオーバーヘッドが下がりました。
permission モデルの CLI が簡素化
実験的な Permission Model のフラグ体系が整理され、--permission など扱いやすい形に統一されました。
破壊的変更
アップグレード時に確認すべき非互換の変更点。移行方法も併記します。
Windows のビルドに ClangCL が必須 (MSVC サポート削除)
公式バイナリの利用には影響しませんが、Node.js 自体やネイティブアドオンを Windows でソースからビルドする場合はツールチェーンの見直しが必要です。
移行 Windows のビルド環境を MSVC から ClangCL ベースへ更新してください。
npm 11 で prepare ライフサイクルの --ignore-scripts 挙動が変更
prepare 系スクリプトに対する --ignore-scripts の効き方が変わりました。CI でスクリプト実行を制御している場合は確認が必要です。
移行 CI のインストール手順とライフサイクルスクリプトの前提を再確認してください。
スコアカード
DL 数 / スター / バンドルサイズ変化など、このリリースの定量データ。
Active LTS 開始
2025-10
Krypton として長期サポートへ昇格
EOL (予定)
2028-04
Maintenance を含むサポート終了見込み
V8 エンジン
13.6
v22 系から大きく前進
Node.js 24 が Active LTS に昇格しました
nodejs/node の最新の長期サポートラインである Node.js 24 (コードネーム Krypton) が、2025 年 10 月に Active LTS へ昇格しました。最初の v24.0.0 は 2025 年 5 月に Current としてリリースされ、半年の安定化期間を経て、本番運用で推奨できる LTS の段階に入っています。
偶数メジャーが LTS になる Node.js の慣例どおり、24 系は数年単位で利用できる「腰を据えて使える」ラインです。これまで v20 / v22 を使ってきたチームにとって、次の標準として検討する価値があります。
LTS スケジュールの考え方
Node.js のメジャーバージョンは、おおまかに次の段階を進みます。
- Current — リリース直後。新機能が積極的に入る時期です。
- Active LTS — 安定化が済み、本番で推奨される時期です。重要な修正がバックポートされます。
- Maintenance — 重大なバグ修正とセキュリティ修正のみに絞られる時期です。
Node.js 24 は現在 Active LTS にあり、Maintenance を含めたサポート終了 (EOL) は 2028 年 4 月 が見込まれています。つまり、いま 24 系へ移行すれば、当面はサポート期間を気にせず運用できます。
逆に、すでに Maintenance に入った古いラインを使い続けている場合は、24 系への移行計画を立てておくと安心です。
主要な新機能
V8 13.6 がもたらす言語機能
Node.js 24 の中心にあるのが、JavaScript エンジン V8 の 13.6 系への更新です。これにより、いくつかの新しい言語機能がランタイム標準で使えるようになりました。
代表的なものを挙げます。
- 明示的リソース管理 (
using/await using) — スコープを抜けるときに自動でリソースを解放できます。ファイルハンドルやコネクションの後始末をtry/finallyで書き続ける必要が減ります。 RegExp.escape()— 任意の文字列を正規表現に安全に埋め込めます。これまで自前のエスケープ関数で済ませていた処理を標準 API に置き換えられます。Float16Array— 半精度浮動小数点の TypedArray です。機械学習やグラフィックス向けのデータをコンパクトに扱えます。Error.isError()— 値が本当に Error かどうかを、instanceofの落とし穴なしに判定できます。- WebAssembly Memory64 — Wasm から 4GB を超えるメモリ空間を扱えるようになりました。
using 宣言の使い方はおおよそ次のようなイメージです。
function getResource() {
return {
value: 'data',
[Symbol.dispose]() {
console.log('スコープを抜けたので解放します')
},
}
}
{
using res = getResource()
console.log(res.value)
} // ここで自動的に Symbol.dispose が呼ばれます
npm 11 を同梱
Node.js 24 には npm 11 が同梱されます。依存関係の解決とインストールがさらに速くなり、ログ出力やエラーメッセージも整理されました。
一方で、prepare まわりのライフサイクルスクリプトに対する --ignore-scripts の挙動が変わっています。CI でインストール時のスクリプト実行を厳密に制御しているチームは、後述の破壊的変更をあわせて確認してください。
URLPattern がグローバルに
ルーティングやリクエストのマッチングで便利な URLPattern が、import なしでグローバルに使えるようになりました。Web 標準の API なので、ブラウザとサーバーでコードを共有しやすくなります。
const pattern = new URLPattern({ pathname: '/users/:id' })
const match = pattern.exec('https://example.com/users/42')
console.log(match.pathname.groups.id) // "42"
AsyncLocalStorage の内部刷新
AsyncLocalStorage の内部実装が AsyncContextFrame ベースに切り替わり、これが既定になりました。リクエストごとのコンテキスト (トレース ID やユーザー情報など) を非同期処理に引き回す際のオーバーヘッドが下がっています。ログ基盤や APM を自作・運用しているチームにとっては地味ながら効く改善です。
permission モデルの CLI が扱いやすく
実験的に提供されてきた Permission Model のフラグ体系が整理され、--permission を起点とした分かりやすい形に統一されました。ファイルシステムやネットワークへのアクセスをプロセス単位で絞り込みたい場面で使えます。まだ実験的な位置づけのため、本番投入前には対象範囲の挙動を必ず確認してください。
破壊的変更と移行時の注意
Windows のビルドが ClangCL 必須に
24 系では、Windows 上で Node.js 本体やネイティブアドオンをソースからビルドする際に、従来の MSVC ではなく ClangCL が必須になりました。
公式配布のバイナリ (nodejs.org のインストーラや node 実行ファイル) をそのまま使う分には影響ありません。影響を受けるのは、自前で Node.js をビルドしているケースや、ネイティブモジュールを Windows でコンパイルしている CI です。該当する場合は、ビルド環境のツールチェーンを ClangCL ベースへ更新してください。
npm 11 のライフサイクルスクリプト挙動
npm 11 では、prepare 系スクリプトに対する --ignore-scripts の効き方が変更されました。インストール時のスクリプト実行をセキュリティ目的で抑止している場合、想定どおりに動いているかを確認しておくと安全です。
移行のすすめ方
24 系はすでに Active LTS なので、新規プロジェクトでは素直に採用してよい段階です。既存プロジェクトの移行は、おおむね次の順序が安全です。
- ローカルで
node:24を入れ、node --versionとnpm --versionを確認します。 - CI のランナーやコンテナイメージ (
node:24-slimなど) を切り替えてテストを走らせます。 - Windows でソースビルドや native addon のコンパイルがある場合は、ClangCL への対応を先に済ませます。
--ignore-scriptsを CI で使っている場合は、npm 11 での挙動を確認します。
正確な変更点は一次情報を確認してください。詳細は nodejs/node の公式リリースノートと API ドキュメントにまとまっています。
まとめ
Node.js 24 は、using 宣言や RegExp.escape() といった新しい言語機能を取り込みつつ、npm 11・グローバル URLPattern・刷新された AsyncLocalStorage を備えた、今後数年の標準となる LTS ラインです。Windows のビルド環境と npm のスクリプト挙動だけ事前に確認すれば、移行のハードルは高くありません。腰を据えた長期運用の土台として、いま乗り換えを検討する価値があります。
公式リンク
一次情報。最新の仕様はこちらを確認してください。
関連するデイリーニュース
このリリースを取り上げた平日のノート。各日の詳細はこちら。