INFRA

Windowsの環境変数の修復をしてNode.js使えるようにした(nvmの使い方)

何かの拍子に環境変数の保存内容を壊してしまいまして、その結果、Node.jsなどが認識しなくなりました。

長らくWSL2を使った開発をしていたのですが、つい最近WSL2とのお別れを決意しました。つまり、Windowsでの開発に超不慣れです。 ということで、色々忘れるので、ちょっとしたこともメモしていきたいと思います。

まずそもそも、nvm-windowsを使っていることを既に失念しておりました。

https://github.com/coreybutler/nvm-windowsgithub.com

node -v が効かないのも、 nvm が認識されていないからでした。 環境変数のPATHにnvmのパスが登録されていないからでした。

環境変数はシステムのものと、ユーザ個別のものがありますが、今回はユーザ固有の環境にnvmをインストールしていましたので、下記のように、PowerShellでコマンド実行することで、ユーザ固有の環境変数に、永続的にPATH登録できました。

Terminal window
[System.Environment]::SetEnvironmentVariable("NVM_HOME", "C:\Users\dev\AppData\Roaming\nvm", "User")
[System.Environment]::SetEnvironmentVariable("NVM_SYMLINK", "C:\Program Files\nodejs", "User")
[System.Environment]::SetEnvironmentVariable("PATH", [System.Environment]::GetEnvironmentVariable("PATH", "User") + ";C:\Users\dev\AppData\Roaming\nvm;C:\Program Files\nodejs", "User")

ちなみに、システム環境変数に保存する場合は、下記のようにします。

Terminal window
[System.Environment]::SetEnvironmentVariable("NVM_HOME", "C:\path\to\nvm", "Machine")
[System.Environment]::SetEnvironmentVariable("NVM_SYMLINK", "C:\Program Files\nodejs", "Machine")
[System.Environment]::SetEnvironmentVariable("PATH", [System.Environment]::GetEnvironmentVariable("PATH", "Machine") + ";C:\path\to\nvm;C:\Program Files\nodejs", "Machine")

PowerShellのwhichは?

下記のように Get-Command というのが使えるようです。

Terminal window
> Get-Command nvm
CommandType Name Version Source
----------- ---- ------- ------
Application nvm.exe 0.0.0.0 C:\Users\dev\AppData\Roaming\nvm\nvm.exe

nvmの使い方メモ

インストール済みのNode.jsバージョンを確認

Terminal window
> nvm ls

利用可能なNode.jsバージョンを確認

Terminal window
> nvm list available

最新のLTSバージョンをインストールする場合

Terminal window
> nvm install lts

特定のバージョン(例:17.9.1)をインストールする場合:

Terminal window
> nvm install 17.9.1

使用するNode.jsバージョンを切り替え

Terminal window
> nvm use 17.9.1

現在使用中のNode.jsバージョンを確認

Terminal window
> nvm current