1. トップページ
  2. Vercel で使用する Node.js のバージョンを 12.X から 18.X にアップデートする

Vercel で使用する Node.js のバージョンを 12.X から 18.X にアップデートする

数ヶ月ぶりに記事を投稿したところ、Vercelから「デプロイに失敗しました」という内容のメールが届きました。
Vercelにアクセスしてログを確認すると、以下のようなエラーが出力されていました。

Error: Node.js Version "12.x" is discontinued and must be upgraded. Please set Node.js Version to 18.x in your Project Settings to use Node.js 18.

どうやら 12.x はサポートが終了したようです。

詳しく調べてみると、2022/10/03 にサポート終了の告知が公式ブログでなされていたようです。

On October 3rd 2022, Node.js 12 will be disabled in the Project Settings and existing Projects that have Node.js 12 selected will render an error whenever a new Deployment is created. The same error will show if the Node.js version was configured in the source code.Node.js 12 is being deprecated

Node.js 12 is being deprecated – Vercel
この機会に 18.x にアップデートしてみます。

Node.jsのアップデート

まず、ローカル環境の Node.js を 18.x に更新してみます。
私の環境ではバージョン管理ツール Nodenv を使用しているため、
以下の方法は参考にならない可能性があります。
それぞれの構築方法に合わせてアップデートを行ってください。

まず、Nodenvからインストールできるバージョンを確認します。

$nodenv install -l


18.x の中で最もバージョンが新しい、18.12.0 をインストールすることにしました。
以下のコマンドを実行してインストールを行います。

$nodenv install 18.12.0
$nodenv rehash


正常にインストールできているか確認します。リストに 18.12.0が表示されれば成功しています。

$nodenv versions
* 12.22.12
  18.12.0


普段は 12.x で開発を行っているため、当ブログの開発にのみ使用するように設定します。
全体で使用したい場合は $nodenv global XX.XX.XX というコマンドを実行してください。

$nodenv local 18.12.0


ルートディレクトリにバージョンのみ記載された .node-versions というファイルが作成されれば成功です。

18.12.0


パッケージのアップデート

アップデートが完了したのでパッケージのインストール後に起動してみましたが、
12.x で動作するよう構成されているため、エラーが出力されて動作しませんでしたので、
インストールされているパッケージのアップデートを行います。
私の環境では yarn v1 を使用してアップデートを行いました。

npm-check-updatesというパッケージをインストールします。
インストールされているパッケージの一括アップデートが可能となります。

$yarn add npm-check-updates


続いて以下のコマンドを実行します。
アップデートが必要なパッケージがリストアップされます。

$yarn ncu


続いて以下のコマンドを実行し、アップデートを行います。

$yarn ncu -u


成功すると package.json が書き換わります。
再度パッケージのインストールを実行します。

$yarn install


インストールが完了後、next.js を起動してみます。
エラーが出力されなくなったのでアップデート作業は完了です。

$yarn dev


Vercelで使用するNode.jsのバージョンを変更する

最後にVercelで使用するNode.jsのバージョンを変更します。これは管理画面から変更が可能です。
バージョンを変更したいプロジェクトにアクセス後、Setting をクリックしてください。

Vercelの管理画面
General の Node.js Version の値を 18.X に設定すれば作業は完了です。

参考にさせていただいたページ

参考サイトなし