Logicky Blog

Logickyの開発ブログです

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

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

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

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

github.com

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