この記事は、nodebrewでインストールしたけど、nodeのバージョンが切り替わらない人向けに書かれています。
##結論
homebrewでインストールされているか、
nodebrewでインストールされているか問題だった。
zshにnodebrewのパスを通すことでnodeのバージョンが切り替わるようになる。
##経緯
node.jsの安定版が更新されていたので、確認した。
Node.js Releases
2020/12/22現在、安定版は14.15.3 Fermium
$ node -v
v12.18.4
$ nodebrew ls-remote
なんかいっぱいバージョンが出る。
$ nodebrew install-binary v14.15.3
Fetching: https://nodejs.org/dist/v14.15.3/node-v14.15.3-darwin-x64.tar.gz
######################################################################## 100.0%
$ nodebrew use v14.15.3
use v14.15.3
$ node -v
v12.18.4
バージョンが変わらない
なんか前にもこんなことあったなぁと思いつつ、調査。
nodeのパスが通っている場所が違うんだろうとアタリをつける。
$ which node
/usr/local/bin/node
homebrewでインストールされていることがわかった。
対応
①homebrewのnodeを削除
brew uninstall --ignore-dependencies node
Uninstalling /usr/local/Cellar/node/15.0.1... (3,331 files, 61.0MB)
--ignore-dependenciesを削除したのは、下記が理由、これなら消せるよ、と書いてくれているのが嬉しい。
Error: Refusing to uninstall /usr/local/Cellar/node/15.0.1
because it is required by yarn, which is currently installed.
You can override this and force removal with:
brew uninstall --ignore-dependencies node
結局、nodeのパスをzshで指定して解決したので、homebrewインストールしたnodeをアンインストールしなくても
解決できたような気がする。
②確認したが、変わらず。
$ nodebrew use v14.15.3
use v14.15.3
$ node -v
v12.18.4
パスを変更していないので、当然である。
③ zshでパスを通す。
$ vim ~/.zshrc
*vimはテキストエディタ、「.zshrc」ファイルを編集できれば何でもいい。
export PATH=$HOME/.nodebrew/current/bin:$PATH
ちゃんと保存してね。
$ source ~/.zshrc
シェルを再読み込み
④確認
node -v
v14.15.3
切り替わった。
備考:デフォルトシェルの確認
$ echo $SHELL
/bin/zsh
macOS Catalina以降はzshになっているらしい。
nodebrewを使ってバージョンを切り替える
$ nodebrew use v12.18.4
use v12.18.4
$ node -v
v12.18.4
$ node -v
v12.18.4
$ nodebrew use v14.15.3
use v14.15.3
nodebrewでのバージョン探索とインストール
$ nodebrew ls-remote
なんかいっぱいバージョンが出る。
$ nodebrew install-binary v14.15.3
##参考
何でHomebrewからじゃなくNodebrewでNode.jsのバージョン管理するのか
node.jsの管理をnodebrewに変更
【zsh, bash】macでPATHを通す方法 - not found と出てしまったら