何かの拍子に環境変数の保存内容を壊してしまいまして、その結果、Node.jsなどが認識しなくなりました。
長らくWSL2を使った開発をしていたのですが、つい最近WSL2とのお別れを決意しました。つまり、Windowsでの開発に超不慣れです。 ということで、色々忘れるので、ちょっとしたこともメモしていきたいと思います。
まずそもそも、nvm-windowsを使っていることを既に失念しておりました。
node -v
が効かないのも、 nvm
が認識されていないからでした。
環境変数のPATHにnvmのパスが登録されていないからでした。
環境変数はシステムのものと、ユーザ個別のものがありますが、今回はユーザ固有の環境にnvmをインストールしていましたので、下記のように、PowerShellでコマンド実行することで、ユーザ固有の環境変数に、永続的にPATH登録できました。
[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")
ちなみに、システム環境変数に保存する場合は、下記のようにします。
[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
というのが使えるようです。
> 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バージョンを確認
> nvm ls
利用可能なNode.jsバージョンを確認
> nvm list available
最新のLTSバージョンをインストールする場合
> nvm install lts
特定のバージョン(例:17.9.1)をインストールする場合:
> nvm install 17.9.1
使用するNode.jsバージョンを切り替え
> nvm use 17.9.1
現在使用中のNode.jsバージョンを確認
> nvm current