0
0

More than 1 year has passed since last update.

Node.jsのバージョン切り替えに手こずった

Last updated at Posted at 2023-04-03

普段案件でNode v10.12.0(古い上にLTSでもない)を使っているのですが、別件で最新版を使う必要がありv18.15.0にアップデート。

その結果、元のバージョンに戻せなくなり行き詰まったためその解決策を記録します。

結論から言うとなんてことのない、
nodenvで管理していたことを忘れnodebrewで最新版をインストールしていたから
でした。

Nodeバージョン確認の流れ

まず現在のnodeバージョンとインストール済みのバージョンを確認

現在
$ node -v
  v18.15.0

インストール済み
$ nodebrew ls
  v18.15.0
  v16.20.0 (←いつインストールしたのかわからない)

使いたいバージョンが出てこない…
仕方なくもう一度インストールを試みる。

$ nodebrew install-binary v10.12.0

  v10.12.0is not found
  Can not fetch: https://nodejs.org/dist/v12.16.3/node-v12.16.3-darwin-arm64.tar.gz

v10.12.0が見つからないとのこと。
そういえばM1 Macで古いnodeをインストールできなかったからそのせい?

M1 Macで古いNode.jsをインストール

以前v10.12.0のインストールが上手く行かなかったとき、こちらの記事を参考にインストールしました。*1

$ arch -x86_64 nodenv install 10.12.0

nodenv: /Users/01049128/.nodenv/versions/10.12.0 already exists

やはりすでに存在している…とここでようやく気づきました。
nodenv
nodenvで管理していたんだった。

nodebrewを削除

Nodeを何で管理しているのかコマンドで確認し、nodebrewはもう使用しないためアンインストール。

nodebrewを見ていることを確認
$ which node
/Users/~~~/.nodebrew/shims/node

nodebrewをアンインストール
$ brew uninstall nodebrew

もうnodebrew使用しないので、PCからnodebrew本体を削除。
ホームディレクトリ(/Users/myName)からcommand + shift + .で隠しコマンドを表示。
.nodebrewフォルダを見つけ(画像は削除後のため無し)、フォルダごと削除。
これでもう二度とnodebrewは使いません。
nodebrew.png

nodenvよ、再び

無事nodebrewを削除し、nodenvのパスを通します。*2

zshの場合
$ echo 'export PATH="$HOME/.nodenv/bin:$PATH"' >> ~/.zshrc
$ echo 'eval "$(nodenv init -)"' >> ~/.zshrc

シェルを再起動
$ exec $SHELL -l

パスを通したら、もう一度向き先を確認してnodenvに向いていることを確認し、使いたいバージョンを指定。

向き先確認
$ which node
  /Users/~~~/.nodenv/shims/node

インストール済みのバージョン確認
$ nodenv versions
  system
* 10.12.0 (set by /Users/~~~/.node-version)
  14.18.3
  16.14.2

今回はすでに使いたいバージョンを指定していましたが、違うバージョンを指定してた場合は以下コマンドで対応。

グローバルで使うnodeのバージョンを指定
$ nodenv global 10.12.0

あるプロジェクトのディレクトリでのみ使うnodeのバージョンを指定
$ nodenv local 10.12.0

リハッシュして適用
$ nodenv rehash

最後にnodeのバージョンを確認し、使いたいバージョンを表示したら無事切り替え完了です。

$ node -v
  v10.12.0

以上でなんとかNodeのバージョンを切り替えることができました。

引用

*1 M1 Mac で nodenv から Intel 版 Node.js をインストール
*2 nodenvの環境構築

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0