VercelがNode.js 20を非推奨化、10月1日から新規デプロイ不可に

VercelがNode.js 20を非推奨化、10月1日から新規デプロイ不可に

VercelがNode.js 20を非推奨化、10月1日から新規デプロイ不可に

VercelにおけるNode.js 20非推奨の概要

VercelにおけるNode.js 20非推奨の概要

Vercelは2026年10月1日をもって、ビルドおよびFunctionsにおけるNode.js 20のサポートを終了する。これは2026年4月30日にNode.js 20がEOL(End of Life / サポート終了)を迎えたことを受けた動きだ。

Node.jsの各バージョンにはライフサイクルが定められている。長期サポート(LTS)が終了すると、セキュリティパッチの提供も停止される。Vercelがプラットフォームとして非推奨とするのは、ユーザーに安全で最新の実行環境を提供し続けるための当然の判断といえる。

この変更で影響を受けるのは、Node.js 20を指定している新規デプロイメントだ。既にデプロイ済みのサーバーレス関数は、その後も問題なく動作し続ける。

2026年10月1日以降
Node.js 20 使用不可
新規デプロイメント作成時にエラーが発生する
推奨される対応
Node.js 22 または Node.js 24 へ移行
package.json の engines フィールドで指定する
廃止されるバージョン  移行先の選択肢  移行対象

上図の通り、Node.js 20を指定したプロジェクトは、10月1日を境に新規デプロイができなくなる。Node.js 22または24への移行が必須だ。

なぜNode.js 20は非推奨となるのか

Node.js 20のLTSは2026年4月30日に終了した。LTS終了後は重大な脆弱性が見つかっても公式の修正は行われない。VercelのようなPaaS(サービスとしてのプラットフォーム)がEOLバージョンをサポートし続けることは、プラットフォーム全体のセキュリティリスクを高める。

実際、Node.jsのEOL後も古いバージョンを使い続けると、依存パッケージの互換性問題やパフォーマンス低下にもつながる。Vercelのこの方針は、ユーザーに対して積極的なアップグレードを促すための健全な措置だ。

影響を受けるプロジェクトの確認方法

影響を受けるプロジェクトの確認方法

まず最初に、自分が管理するVercelプロジェクトのうち、どれが今回の非推奨の影響を受けるかを確認する必要がある。Vercel CLIを使えば、コマンド一発で該当プロジェクトの一覧を取得できる。

最新のVercel CLIをインストールし、以下のコマンドを実行するだけだ。

npm i -g vercel@latest
vercel project ls --update-required

このコマンドは、非推奨のNode.jsバージョンをターゲットにしているプロジェクトの一覧を表示する。出力結果にプロジェクトが表示された場合、早急な対応が必要だ。

📋 確認のステップ
STEP 1 Vercel CLI を最新版にアップデート
STEP 2 vercel project ls –update-required を実行
STEP 3 該当プロジェクトをリストアップして対応計画を立てる

このフローで影響範囲を可視化できる。チームで複数のプロジェクトを運用している場合、全メンバーがこの確認を共有しておくとスムーズだ。

既存のデプロイメントは安全

ここで一つ重要なポイントがある。2026年10月1日以降も、既にデプロイ済みのサーバーレス関数は影響を受けない。すでに本番環境で稼働している関数への呼び出しは、これまで通り正常に動作する。

非推奨の影響が出るのは、あくまで新しいデプロイメントを作成するときだ。既存の環境が突然停止することはないため、慌てて不完全な状態でアップグレードする必要はない。計画的に移行を進められる。

Node.jsバージョンのアップグレード手順

Node.jsバージョンのアップグレード手順

Node.jsのバージョンを変更する方法は大きく2つある。プロジェクト設定のGUIから変更する方法と、package.jsonのenginesフィールドで指定する方法だ。

package.jsonで指定する場合は、以下のように記述する。

{
  "engines": {
    "node": "24.x"
  }
}

この設定がデプロイ時に読み取られ、Node.js 24が使用される。プロジェクト設定の値よりもpackage.jsonの指定が優先されるため、リポジトリにこの設定を含めておけば、デプロイのたびにGUIで変更する手間が省ける。

また、Vercelの公式ブログでは、コーディングエージェントにアップグレードを依頼する際のプロンプトも紹介されている。

Upgrade this Vercel project from Node.js 20 to 24.
Set the engines field in package.json to { "node": "24.x" },
which overrides the Project Settings version on the next deployment.
Update any Node 20 pins in .nvmrc, .node-version, or CI configs.
Switch the local runtime to Node 24, reinstall dependencies,
run the build and tests, and fix any breaking changes.
After deploying, confirm the version by logging process.version.

このプロンプトをClaudeやChatGPTなどのコーディングエージェントに渡せば、Node.jsバージョンの変更に伴う一連の作業をある程度自動化できる。

従来の手動アップグレード(Before)
作業者 .nvmrc を手動で編集
作業者 package.jsonのenginesフィールドを手動更新
作業者 CI設定ファイルのNodeバージョン指定を書き換え
作業者 依存関係の再インストールとテスト
※複数ファイルの修正漏れやビルドエラーが発生しやすい
コーディングエージェントを活用したアップグレード(After)
作業者 プロンプトを1回送信 AIエージェント が全ファイルを一括修正
※.nvmrc、package.json、CI設定の全箇所が同時に更新される
人間の作業者  AI・自動化ツール

上記の対比の通り、コーディングエージェントを活用すれば複数ファイルの一括更新が可能で、変更漏れのリスクを減らせる。

アップグレード時に気をつけるべき破壊的変更

Node.js 20から22、あるいは24へ移行する際、APIの破壊的変更がいくつか存在する。特に注意すべきなのは、以下の点だ。

  • 廃止されたAPI(fs.rmdirのコールバック形式など)が完全に削除されている可能性
  • ESM(ECMAScript Modules)の取り扱いに関するデフォルト挙動の変更
  • ネイティブアドオンのABI互換性(再ビルドが必要になるケース)
  • V8エンジンのバージョンアップに伴うパフォーマンス特性の変化

移行前に必ずローカル環境でNode.jsのバージョンを切り替え、依存関係を再インストールした上で、ビルドとテストを実行してほしい。CIパイプラインでNode.jsのマトリクステストを実施している場合は、テスト対象に新しいバージョンを追加しておくと安全だ。

アップグレードが間に合わない場合の緊急回避策

アップグレードが間に合わない場合の緊急回避策

どうしても10月1日までにNode.jsのバージョンアップが完了できないプロジェクトが出てくるかもしれない。大規模なコードベースや、多数の依存パッケージとの互換性確認に時間がかかるケースだ。

そうした状況のために、Vercelはコンテナイメージとしてデプロイする代替手段を用意している。

プロジェクトのルートにDockerfile.vercelを作成し、Node.js 20をベースイメージとして指定するだけでよい。

FROM node:20-alpine
WORKDIR /app
COPY . .
RUN npm ci
# サーバーは $PORT をリッスンする必要がある
CMD ["node", "server.js"]

この方法を使えば、プロジェクト設定のNode.jsバージョンはコンテナに適用されない。つまり、プラットフォーム側のNode.js 20非推奨の影響を受けずにデプロイを継続できる。

コンテナデプロイを使用する場合の注意点(Before)
⚠️ Node.jsバージョンの管理はユーザー自身の責任になる セキュリティパッチの適用を自分で行う必要がある ベースイメージの定期的な更新が必須
推奨される方針(After)
✅ Node.js 22または24へのアップグレードを計画的に実施する コンテナは一時的な回避策としてのみ使用 アップグレード後に通常のFunctionsデプロイに戻す

コンテナデプロイはあくまで一時的な回避策だ。Node.js 20のセキュリティサポートはすでに終了している。長期的に見れば、Node.jsのバージョンアップこそが唯一の正しい解決策である。

この記事のポイント

  • Vercelは2026年10月1日にNode.js 20を非推奨とする。既存デプロイメントは影響を受けない
  • vercel project ls –update-required で影響を受けるプロジェクトを特定できる
  • package.jsonのenginesフィールドでNode.js 22または24を指定して移行する
  • コーディングエージェント用のプロンプトを使うと、複数ファイルの一括更新が効率的
  • どうしても間に合わない場合はコンテナデプロイ(Dockerfile.vercel)で緊急回避が可能
海田 洋祐

・ 複数業界における17年間のデジタルビジネス開発経験 ・ ウェブサイト開発のためのHTML、PHP、CSS、JavaScript等の実用的知識 ・ 15ヶ国語対応の多言語SaaSの開発経験 ・ 17年間にも及ぶ、Eコマース長期運営経験 ・ 幅広い業界でのSEO最適化の豊富な経験

メッセージを残す