😩
Node.js v20 で GitHubActions から Vercel へのデプロイがコケた
つい先日(2024.3.25) に Vercel の Node.js v20 サポートが GA になった
Node.js v20 LTS is now generally available – Vercel
それに伴って Node.js v18 を v20 にアップデートしたらデプロイがコケるようになった
環境
利用技術 | バージョン |
---|---|
Next.js | v13 |
Node.js | v20 |
vercel-action | v25 |
Next.js プロジェクトを GitHubActions から Vercel にデプロイしている
発生したエラー
GitHubActions
Error: The process '/opt/hostedtoolcache/node/20.12.0/x64/bin/npx' failed with exit code 1
Vercel
Error: Found invalid Node.js Version: "20.x". Please set "engines": { "node": "18.x" } in your `package.json` file to use Node.js 18.
Vercel で Node.js v20 が選択できないと言われる🥺
解決方法
GitHubActions の該当のデプロイワークフローファイルで、利用する Vercel CLI のバージョンを v33.6.1
以降を指定する
deploy.yml
uses: amondnet/vercel-action@v25
with:
+ vercel-version: latest
現象
この ISSUE の通り、 Vercel CLI で修正されていた
Vercel CLI を利用してデプロイしている場合はそのまま CLI を v33.6.1
以上にアップデートして治る
あとがき
GitHubActions 経由だと Vercel CLI を意識しなくてよくなるため、単純にハマりポイントだった。
Vercel の公式ドキュメント Using the Node.js Runtime with Serverless Functions にある通り、package.json
の engines#node
を参照して Node.js のバージョンが決定する。
ドキュメントには当然 CLI のバージョンで挙動が変わる(バグの)ことは書かれていないため、沼ってた。
Node.js v20 にアップデートする際は気をつけられたし。
Discussion