この記事で解決すること
「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: 公式サイトからダウンロード
- https://nodejs.org にアクセス
- LTS版(推奨版)のダウンロードボタンをクリック
- インストーラーを実行
- ターミナルを再起動して
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.json に engines フィールドがある場合は、対応バージョンを更新してください。
{
"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 | 関数の設定 → ランタイム |
| Vercel | package.json の engines または管理画面 |
| Netlify | 環境変数 NODE_VERSION |
| Heroku | package.json の engines |
| GitHub Pages | GitHub 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をもっと学びたい方へ: