👻

MacのローカルNode.jsをnodebrewでバージョン切替できるよう移行する

2022/07/20に公開1

はじめに

開発環境を構築する際にインストールした Node.js がローカルに存在していることはよくあることかと思います。
ローカルに存在していると Node.js のバージョンを複数持ち、開発要件によってバージョンを切り替えが必要な時困ってしまいます。
私も以前にインストールされた Node.js を使用していましたが、別バージョンが必要なことがありローカル環境から nodebrew へ移行を行いました。
つまずく点が多く複雑でしたので私が行った方法をこちらに記載していこうと思います。

実行環境

  • macOS:Big Sur
  • CPU:Intel

手順

  1. Node.js アンインストール
  2. Homebrew インストール
  3. nodebrew インストール
  4. nodebrew 上に node インストール

Node.js アンインストール

まずはローカル環境の Node.js をアンインストールします。
後で nodebrew 上でインストールするのでここは完全に削除して問題ありません。
ローカル Node.js の居場所確認

$ which node
# 出力
/user/local/bin/node

出力されたパスに対して削除コマンドを実行

$ sudo rm -rf /user/local/bin/node

さらに npm も削除

$ sudo rm -rf ~/.npm

以下コマンドでバージョンが表示されずエラーになれば node が削除完了です。

$ node -v
# 出力
bash: command not found: node
$ npm -v
# 出力
bash: command not found: npm

これでローカルに存在していた Node.js が削除されました。

Homebrew インストール

次に Homebrew をインストールします。
Homebrew は開発に使用するパッケージを管理してくれるソフトウェア
Node.js 、 Python、Git などを Homebrew 上にインストールしてバージョン管理等をします。
公式サイト
https://brew.sh/index_ja.html

インストールコマンドは公式サイトにありますのでそちらを実行します。

$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

少し時間がかかりますが、インストールが完了するまで待ちます。

以下コマンドを実行しバージョンが表示されればインストール完了です。

$ brew -v
# 出力
Homebrew 3.5.5
Homebrew/homebrew-core (git revision d4ed75d1c65; last commit 2022-07-18)

nodebrew インストール

先ほどインストールした Homebrew 上に nodebrew をインストールします。

$ brew install nodebrew

以下コマンドを実行しバージョンが以下のように表示されればインストール完了です。

$ nodebrew -v
# 出力
nodebrew 1.2.0

Usage:
    nodebrew help                         Show this message
    nodebrew install <version>            Download and install <version> (from binary)
    nodebrew compile <version>            Download and install <version> (from source)
    nodebrew install-binary <version>     Alias of `install` (For backward compatibility)
    nodebrew uninstall <version>          Uninstall <version>
    nodebrew use <version>                Use <version>
    nodebrew list                         List installed versions
    nodebrew ls                           Alias for `list`
    nodebrew ls-remote                    List remote versions
    nodebrew ls-all                       List remote and installed versions
    nodebrew alias <key> <value>          Set alias
    nodebrew unalias <key>                Remove alias
    nodebrew clean <version> | all        Remove source file
    nodebrew selfupdate                   Update nodebrew
    nodebrew migrate-package <version>    Install global NPM packages contained in <version> to current version
    nodebrew exec <version> -- <command>  Execute <command> using specified <version>
    nodebrew prune [--dry-run]            Uninstall old versions, keeping the latest version for each major version

Example:
    # install
    nodebrew install v8.9.4

    # use a specific version number
    nodebrew use v8.9.4

nodebrew 上に node インストール

Node.js をインストールする前に nodebrew を使用するためのセットアップが必要です。
実は nodebrew インストール中にこのような出力がされています。

You need to manually run setup_dirs to create directories required by nodebrew:
  /usr/local/opt/nodebrew/bin/nodebrew setup_dirs

Add path:
  export PATH=$HOME/.nodebrew/current/bin:$PATH

To use Homebrew's directories rather than ~/.nodebrew add to your profile:
  export NODEBREW_ROOT=/usr/local/var/nodebrew

Bash completion has been installed to:
  /usr/local/etc/bash_completion.d

zsh completions have been installed to:
  /usr/local/share/zsh/site-functions

nodebrew を実行するために

  • setup_dirs を実行する
  • export PATH=$HOME/.nodebrew/current/bin:$PATHという実行パスを追加

の設定が必要になります。

setup_dirs を実行する

以下のコマンドで実行できます。

$ /usr/local/opt/nodebrew/bin/nodebrew setup_dirs

実行パスを追加

こちらはターミナルが bashzsh によってコマンドが違います。
使用しているターミナルがどちらか確認した上で対応するコマンドを実行してください。

  • zsh の場合
$ vim ~/.zshrc

これで.zshrc の中身が表示されるので
iを押し以下をコピぺした上でecsを押して:wq→Enter キーで.zshrcを更新します。

export PATH=$HOME/.nodebrew/current/bin:$PATH

更新後、source を有効にします。

$ source ~/.zshrc
  • bash の場合

.bash_profileにパスを保存します。
zsh と同様の手順で変更先のファイルを.bash_profileにすれば OK です。

最新の Node.js インストール方法

以下のコマンドで最新の Node.js をインストール

$ nodebrew install-binary latest

指定したバージョンの Node.js インストール方法

インストール可能な Node.js のバージョンを調べる

$ nodebrew ls-remote

出力されたバージョンの中から指定バージョンの Node.js をインストール
※ここではv16.15.1をインストールします

$ nodebrew install v16.15.1

以下コマンドで nodebrew 上にインストールされている Node.js が確認できます

$ nodebrew list
# 出力
v16.15.1
v18.6.0

インストールした Node.js のバージョンを切り替える

バージョンを切り替えるには以下のコマンドを実行します。
ここでは v16.15.1 へ切り替えます。

$ nodebrew use v16.15.1
# 出力
use v16.15.1

v16.15.1 が有効になっているはずです。
以下のコマンドで有効なバージョンを確認します。

$ node -v
# 出力
v16.15.1

これでバージョンを切り替えることができました。

まとめ

開発に使用するパッケージやレガシーなアプリケーションの開発する際など使用する Node.js のバージョンは様々です。
バージョンを切り替えることはほぼ必須と言えますので、nodebrew でバージョン管理することを推奨します。

nodebrew へのインストールやローカル Node.js の削除が複雑でつまずいている方の参考になれれば嬉しいです。

参考サイト

https://hirooooo-lab.com/development/install-node/#index_id5
https://qiita.com/7110/items/efe0be1be11bed1db143
https://qiita.com/gaipoi/items/406d6c4b1ccd1733318a

GitHubで編集を提案

Discussion