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
こんな感じになります。
その後、環境変数の設定内容を反映させます。
(コンソールのウィンドウを開きなおす)
それでもバージョンが切り替わらない場合
公式サイトから配布されているインストーラを使用してください。
https://github.com/coreybutler/nvm-windows/releases/
nvm-setup.zip を選択し、「nvm-setup.exe」を起動してインストール。
こんなメッセージが出た場合は「はい」を選択します。
多分、この時に Node.js と上手い事やってくれてるんじゃないかと思います。