事象
Node.jsのローカル環境でのバージョン管理にはnというバージョン管理ツールがオススメという記事が多数あったので、インストールした。その際に、n でインストールしたNodeバージョンに切り替わらなかった時の対応方法まとめ。 ※ nのインストール方法は省略。
生じた現状は以下。
usr@usrMacBook-Pro ~ % n stable
installed : v16.14.0 to /Users/ogasawarasatoru/.n/bin/node
active : v17.0.1 at /usr/local/opt/nvm/versions/node/v17.0.1/bin/node
usr@usrMacBook-Pro ~ % node -v
v17.0.1
n stable
でNodeのLTSをインストール後、node -v
で確認すると、activeのバージョンが違う。
原因
どうやら、最初から入っていたnvmのNodeがactiveとして設定されていたようで、n でインストールしたnodeが適用されなかった。(これ自体は正常な動き)
usr@usrMacBook-Pro ~ % which node
/usr/local/opt/nvm/versions/node/v17.0.1/bin/node
ちなみにnの向き先は以下。
usr@usrMacBook-Pro ~ % which n
/usr/local/bin/n
解決方法
ネットの記事を読む限り、nvmにシンボリックリンクを貼って向き先をnに変えたり、nvmの読み込み設定を削除したり、といった方法があった。自分の場合は、nvmをアンインストール、設定削除で解決。
- bash_profileからnvmの設定削除。
- bash_profile更新
- nvmのアンインストール
- nodeを入れてみて、バージョンを確認して終了
bash_profileからnvmの設定削除
エディターで.bash_profile
を開いてnvmの記述を削除でもオッケー。ターミナルから実行する場合は、
$ vi ~/.bash_profile
で.bash_profile
を開く。vimコマンドを使って↓を削除。
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
保存して編集完了(escキー
→ :
→ w
+q
)
bash_profile更新
source ~/.bash_profile
nvmのアンインストール
nvmをアンインストールするにはディレクトリを削除すれば良いとのこと。
usr@usrMacBook-Pro ~ % echo $NVM_DIR
/usr/local/opt/nvm
usr@usrMacBook-Pro ~ % rm -rf $NVM_DIR
nodeを入れてみて、バージョンを確認して終了
usr@usrMacBook-Pro ~ % n stable
installed : v16.14.0 (with npm 8.3.1)
usr@usrMacBook-Pro ~ % node -v
v16.14.0
active
が表記からなくなり、正常にインストール完了。nodeの向き先がnに変わった様子。
usr@usrMacBook-Pro ~ % which node
/Users/username/.n/bin/node
usr@usrMacBook-Pro ~ % which n
/usr/local/bin/n