【備忘録】Node.js を最新バージョンへアップデートした手順メモ

導入文

久しぶりに開発環境を見直してみたら、Node.js のバージョンが v14 のままだったことに気づきました。調べてみると Node.js 14 は 2023年4月にサポート終了(EOL)していて、セキュリティアップデートも来なくなっているとのこと。これはまずいなということで、重い腰を上げてアップデートすることにしました。

この記事は完全に自分用のメモなんですが、同じように nvm を使って Node.js をアップデートする人がいたら参考になるかもしれません。

作業環境と前提条件

項目内容OSmacOSバージョン管理nvm を採用前提ツールHomebrew が導入済み

アップデート手順

Step1:現状確認

まずは今どのバージョンを使っているのか確認しておきます。

bash

node -v
# v14.x.x

npm -v
# 6.x.x

やっぱり Node.js 14 系でした。そりゃそうだ。

Step2:nvm をインストール

今回は nvm(Node Version Manager)を使ってバージョン管理することにしました。nvm を入れておくと、複数のバージョンを切り替えたりできるので便利です。

bash

# Homebrew 経由でインストール
brew install nvm

# nvm 用のディレクトリを作成
mkdir ~/.nvm

インストールできたら、.zshrc に設定を追記します。これをやっておかないと nvm コマンドが使えないので忘れずに。

bash

# .zshrc に追記
export NVM_DIR="$HOME/.nvm"
[ -s "/opt/homebrew/opt/nvm/nvm.sh" ] && \. "/opt/homebrew/opt/nvm/nvm.sh"
[ -s "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" ] && \. "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm"

で、設定を反映させます。

bash

source ~/.zshrc

Step3:Node.js 最新 LTS に切替

ここから本題です。nvm を使って最新の LTS(Long Term Support)バージョンをインストールします。LTS は長期サポート版なので、安定して使いたい人向けです。

bash

# 最新 LTS をインストール
nvm install --lts

# デフォルトバージョンとして設定
nvm alias default lts/*

# バージョン確認
node -v
# v20.x.x または v22.x.x(作業時の最新LTS)

npm -v
# 10.x.x

無事にアップデートできました。

Step4:.npmrc の衝突解消

アップデート後、こんな感じの警告が出ることがあります。

npm WARN config global `--global`, `--local` are deprecated. Use `--location=global` instead.

これは古い .npmrc の設定が残ってるせいですね。以下のコマンドで確認して、必要なら修正します。

bash

# 現在の npm の設定場所を確認
npm config get prefix

# グローバルパスを明示的に設定
npm config set prefix ~/.nvm/versions/node/$(node -v)

Step5:PATH の確認

ちゃんと正しいバージョンの Node.js が使われているか確認しておきます。

bash

which node
# /Users/username/.nvm/versions/node/v20.x.x/bin/node

which npm
# /Users/username/.nvm/versions/node/v20.x.x/bin/npm

.nvm/versions/node/ 配下を指していればOKです。

Before / After 比較

項目BeforeAfterNode.jsv14.x.x (EOL)v20.x.x (LTS)npmv6.x.xv10.x.xサポート状況サポート終了アクティブサポート中セキュリティ脆弱性リスクあり最新パッチ適用済み

よく使うグローバルパッケージの再インストール

nvm でバージョンを切り替えると、グローバルパッケージも入れ直す必要があります。自分がよく使うやつをまとめてインストールしておきました。

bash

npm install -g yarn vite gulp-cli firebase-tools

次回環境構築する時のために、ここにメモっておくと楽です。

トラブルシューティング

npm prefix エラーが出る場合

たまにこんなエラーが出ることがあります。

bash

# prefix を確認
npm config get prefix

# nvm 管理下のパスに設定し直す
npm config delete prefix

PATH の競合

システムにインストールされた Node.js と nvm の Node.js が喧嘩してる場合は、.zshrc の記述順序を見直してみてください。nvm の設定が最後に読み込まれるようにしておくといい感じです。

権限(sudo)問題

nvm を使ってる場合、基本的に sudo npm install -g は不要です。もし権限エラーが出たら、システム側の Node.js を参照しちゃってる可能性があります。

bash

# nvm 経由で実行されているか確認
which node

まとめ

というわけで、Node.js 14 から最新 LTS へのアップデートが無事完了しました。npm のインストール速度も速くなった気がするし、なんとなく動作も軽くなった感じがします(気のせいかもしれないけど)。

この記事は完全に未来の自分へ向けた備忘録です。また同じことやる時に「あれ、どうやったっけ?」ってならないように残しておきます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です