この記事で解決すること

「Node.jsのバージョンとか気にしたことないけど、大丈夫?」

2026年4月30日、Node.js 20のサポートが正式に終了しました。サポート終了後はセキュリティパッチが提供されなくなります。自分のNode.jsのバージョンを確認して、必要なら移行しましょう。

何が起きたのか

Node.js 20は2023年4月にリリースされ、2023年10月にLTS(長期サポート)版になりました。約3年間のサポート期間を経て、2026年4月30日にEnd of Life(EOL)を迎えました。

サポート終了で何が変わるのか

  • セキュリティの脆弱性が見つかっても修正されない
  • バグが見つかっても修正されない
  • 新しいnpmパッケージがNode.js 20で動かなくなる可能性がある
  • AWS LambdaやVercelなどのクラウドサービスがNode.js 20のサポートを順次終了する

つまり、Node.js 20を使い続けるとセキュリティリスクが高まり、いずれ動かなくなるパッケージも出てきます。

自分のバージョンを確認する

ターミナルで以下のコマンドを実行してください。

node -v

表示されたバージョンが v20.x.x なら、移行が必要です。

# 例: 移行が必要
v20.20.2

# 例: 移行不要(Node.js 22 LTS)
v22.15.0

# 例: 移行不要(Node.js 24 LTS)
v24.14.0

ターミナルの操作に不安がある方はコマンドラインが怖い人へ ― 覚えるコマンド5つだけを先に読んでおくと安心です。

どのバージョンに移行すべきか

推奨: Node.js 22(LTS)

現在のLTS(長期サポート)版はNode.js 22です。2028年4月までサポートされます。

  • 安定性を重視する方向け
  • ほとんどのnpmパッケージが対応済み
  • 本番環境での利用に適している

もう一つの選択肢: Node.js 24(LTS)

Node.js 24もLTS版として利用可能です。2028年4月までサポートされます。

  • 最新の機能を使いたい方向け
  • Node.js 22からの移行ガイドが公式に用意されている

避けるべき: Node.js 25(Current)

Node.js 25は「Current」版で、LTSではありません。6ヶ月でサポートが切れるため、本番環境には向きません。

移行手順

方法1: nvm(Node Version Manager)を使う(推奨)

nvmを使っている場合は、コマンド一つで切り替えられます。

# Node.js 22の最新版をインストール
nvm install 22

# デフォルトに設定
nvm alias default 22

# 確認
node -v

nvmをまだ使っていない方は、この機会に導入をおすすめします。複数のNode.jsバージョンを簡単に切り替えられるツールです。

方法2: 公式サイトからダウンロード

  1. https://nodejs.org にアクセス
  2. LTS版(推奨版)のダウンロードボタンをクリック
  3. インストーラーを実行
  4. ターミナルを再起動して node -v で確認

方法3: Voltaを使う

Voltaはnvmの代替ツールで、プロジェクトごとにNode.jsのバージョンを自動で切り替えてくれます。

# Voltaのインストール(Mac/Linux)
curl https://get.volta.sh | bash

# Node.js 22をインストール
volta install node@22

# 確認
node -v

移行後に確認すること

1. プロジェクトの動作確認

Node.jsのバージョンを上げたら、プロジェクトが正常に動くか確認してください。

# 依存パッケージを再インストール
rm -rf node_modules
npm install

# テストを実行(テストがある場合)
npm test

# 開発サーバーを起動して動作確認
npm run dev

npmの基本操作についてはnpm/yarn入門ガイドで解説しています。

2. package.jsonのenginesフィールド

プロジェクトの package.jsonengines フィールドがある場合は、対応バージョンを更新してください。

{
  "engines": {
    "node": ">=22.0.0"
  }
}

JSONの書き方に不安がある方はJSONとは?の解説記事も参考になります。

3. CI/CDの設定

GitHub ActionsなどのCI/CDでNode.jsのバージョンを指定している場合は、そちらも更新が必要です。

# .github/workflows/test.yml の例
- uses: actions/setup-node@v4
  with:
    node-version: '22'

GitHubの基本についてはGitHubとは?の解説記事で紹介しています。

4. クラウドサービスの設定

以下のサービスを使っている場合は、Node.jsのランタイムバージョンを確認・更新してください。

サービス確認場所
AWS Lambda関数の設定 → ランタイム
Vercelpackage.jsonengines または管理画面
Netlify環境変数 NODE_VERSION
Herokupackage.jsonengines
GitHub PagesGitHub Actionsのワークフロー

Node.js 20 → 22で変わること

Node.js 22にはいくつかの変更点があります。移行時に影響する可能性があるものを挙げます。

破壊的変更(注意が必要)

  • require() でESモジュールを読み込む動作がデフォルトで有効に
  • 一部の非推奨APIが削除
  • V8エンジンのアップデートに伴う挙動変更

便利な新機能

  • fetch() がグローバルで安定版に(実験的フラグ不要)
  • テストランナーの改善
  • パフォーマンスの向上

fetch APIの使い方についてはJavaScript Fetch APIの使い方で解説しています。

よくある質問(FAQ)

Q: Node.js 20を使い続けるとどうなりますか?

A: すぐに動かなくなるわけではありませんが、セキュリティパッチが提供されなくなります。新しいnpmパッケージがNode.js 20をサポートしなくなる可能性もあります。できるだけ早く移行することをおすすめします。

Q: 移行したらプロジェクトが動かなくなりませんか?

A: ほとんどのプロジェクトはそのまま動きます。ただし、一部のパッケージが互換性の問題を起こす可能性があるため、移行後にテストを実行して確認してください。

Q: nvmとVoltaはどちらがいいですか?

A: nvmは歴史が長く情報が多いです。Voltaはプロジェクトごとの自動切り替えが便利です。チームで使う場合はVolta、個人で使う場合はどちらでもOKです。

Q: Node.js 22と24、どちらを選ぶべきですか?

A: 安定性を重視するならNode.js 22がおすすめです。どちらも2028年4月までサポートされますが、Node.js 22のほうがnpmパッケージの対応状況が安定しています。

まとめ

  • Node.js 20は2026年4月30日にサポート終了
  • node -v でバージョンを確認。v20.x.xなら移行が必要
  • 移行先はNode.js 22(LTS)が推奨
  • nvmを使えばコマンド一つで切り替え可能
  • 移行後は npm install → テスト → CI/CD設定の更新を忘れずに

あわせて読みたい

関連リソース

Node.jsをもっと学びたい方へ: