こんにちは、初級エンジニアのネコヤナギ🐈です。
wordpressのブロックエディター(Gutenberg)の開発を進めていく過程でこの「nvm」をインストールしたのですが、useコマンドを使ってNode.jsのバージョンの切り替えができず、困ったので備忘録に解決策を残しておきます。
nvm for windows でNode.jsのバージョンが切り替わらない現象
私の環境は下記の通りです。
nvmのバージョンは1.1.11
windows10
nvm のコマンド
Node.jsは現在の推奨版である 18.16.1 と16.15.0 をインストールしました。
$ nvm ls
18.16.1
16.15.0
$ node -v
'node' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
上記のように、nvm lsコマンドではインストール済のNode.jsのバージョンが表示されるものの、->で
ポイントされるはずの現在使用中のNode.jsがありません。
管理者権限でnvm use [バージョン]コマンド使っても変化なし
管理者権限でnvm useコマンドを使用しても、node -v にたいする返答は「’node’ は、内部コマンドまたは外部コマンド、…」でした。
考えられる原因と解決方法
まず、nvm lsコマンドでインストールできているバージョンがちゃんと表示されてうので、原因はNode.jsにあると考えました。
nvmをインストールする際に私は「nvm-setup.zip」使い、setupを特に変更することなく完了させました。完了した際に自動的に設定された環境パスは下記の通りです。
環境変数名 | パス |
NVM_HOME | C:\Users\who\AppData\Roaming\nvm |
NVM_SYMLINK | C:\Program Files\nodejs |
NVM_SYMLINKのパスの中に空白文字が含まれていたこと、もしくはProgram Filesの直下だったことが原因だと考えています。
nvmをアンインストール→インストール
環境パスを手動で直しても改善できなかったので、一度アンインストールしてから再度インストールをしました。
setup の中でNVM_SYMLINKのパスを C:\Program Files\nodejs → C:\nodejs に手動で直してインストールを完了させます。
管理者権限でnvm use [バージョン]コマンドの実行
ここでもう一度nvm useコマンドで設定したいNode.jsのバージョンを指定すれば完了です。
nvm lsコマンドでちゃんと->で現在使用中のNode.jsがポイントされています。
また、node -vコマンドで指定したバージョンが返ってきます。
終わりに
NVM_HOMEはC:\Users[windowsユーザー名]\AppData\Roaming\nvmにインストールされるので問題ありませんでした。
NVM_SYMLINKがC:\Program Files\の配下になっているため、発生したようです。
そのためNVM_SYMLINKをCの直下に置くことで私は問題を解決することができました。
コメント