仕事の記録

【windows環境】nvm useコマンドを使ってもバージョンが切り替わらない

仕事の記録

こんにちは、初級エンジニアのネコヤナギ🐈です。

wordpressのブロックエディター(Gutenberg)の開発を進めていく過程でこの「nvm」をインストールしたのですが、useコマンドを使ってNode.jsのバージョンの切り替えができず、困ったので備忘録に解決策を残しておきます。

この記事は 下記の現象が起きた際の解決策を書いています。

  • nvm ls で->でポイントされるはずの現在使用中のNode.jsがない
  • node -v で「’node’ は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」と返ってくる

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_HOMEC:\Users\who\AppData\Roaming\nvm
NVM_SYMLINKC:\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の直下に置くことで私は問題を解決することができました。

コメント

Copy Protected by Chetan's WP-Copyprotect.
タイトルとURLをコピーしました