かきスタンプ

福岡でフリーランスの物流系のエンジニアやってます。

NVM for Windows を使ったけど Node.js のバージョンが切り替わらない! そんな時は、環境変数を見てみよう。

NVM for Windows を使うと、Windows 上で Node.js のバージョン管理ができるのですが、バージョンが切り替わらない現象に遭遇しました。
以下、その対策です。

NVM for Windows のインストール

Chocolatey(パッケージマネージャー)を使用しています。Chocolateyのインストール方法は、こちらでも。
ちなみに公式サイトはこちら

choco install nvm

別バージョンの Node.js をインストール

例:v13.7.0

nvm install v13.7.0

Node.js のバージョンを切り替え

例:v13.7.0

nvm use 13.7.0

これで Node.js のバージョンが切り替わってるはずが

λ node -v
v14.4.0

こんな感じで、マシンにインストールされている Node.js のバージョンが表示されました。

対策

環境変数が正常に設定されていない可能性があるので、設定し直します。

まず、コマンドプロンプトで「where nvm」と入力し、nvm のパスを調べます。
PowerShell には where コマンドは無いみたい)

C:\>where nvm
C:\ProgramData\nvm\nvm.exe

今回のケースの場合、「C:\ProgramData\nvm」を使用します。

システムの環境変数に、以下を追加します。

変数名 : NVM_HOME
変数値 : C:\ProgramData\nvm

続いて、コマンドプロンプトで「where node」と入力し、node.js のパスを調べます。

C:\>where node
C:\Program Files\nodejs\node.exe

今回のケースでは、「C:\Program Files\nodejs」を使用します。

システム環境変数に、以下を設定します。

変数名 : NVM_SYMLINK
変数値 : C:\Program Files\nodejs

こんな感じになります。
f:id:kakisoft:20200607113304j:plain

その後、環境変数の設定内容を反映させます。
(コンソールのウィンドウを開きなおす)

それでもバージョンが切り替わらない場合

公式サイトから配布されているインストーラを使用してください。
https://github.com/coreybutler/nvm-windows/releases/

nvm-setup.zip を選択し、「nvm-setup.exe」を起動してインストール。

f:id:kakisoft:20200607113316j:plain

こんなメッセージが出た場合は「はい」を選択します。
多分、この時に Node.js と上手い事やってくれてるんじゃないかと思います。