🏞️

nodenvでNode.jsのバージョンを切り替える

2021/06/29に公開

プロジェクトごとにNode.jsのバージョンを簡単に切り替えられるnodenvの使い方をメモしておきます。

環境

  • macOS Big Sur 11.4

nodenvをインストールする

Homebrewをインストールしていない場合は、先にHomebrewをインストールします。

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

nodenvをインストールします。

$ brew install nodenv

利用しているシェルに応じて、次の1行を書き込みます。

~/.bashrc or ~/.zshrc
eval "$(nodenv init -)"

ここまで設定できればターミナルを閉じて、再度開きます。

nodenvの設定が完了しているかどうかを確認します。以下のような結果になればOKです。

$ curl -fsSL https://github.com/nodenv/nodenv-installer/raw/master/bin/nodenv-doctor | bash
Checking for `nodenv' in PATH: /usr/local/bin/nodenv
Checking for nodenv shims in PATH: OK
Checking `nodenv install' support: /usr/local/bin/nodenv-install (node-build 4.9.43)
Counting installed Node versions: 1 versions
Auditing installed plugins: OK

指定のバージョンのNode.jsをインストールする

# インストール可能なNode.jsのバージョン一覧
$ nodenv install -l
...
15.14.0
16.0.0
16.1.0
16.2.0
16.3.0
...

# Node.jsの15.14.0と16.3.0をインストールする
$ nodenv install 15.14.0
$ nodenv install 16.3.0

# nodenvに認識させる
$ nodenv rehash

Node.jsのバージョンを切り替える

# インストールされているNode.jsのバージョン一覧
$ nodenv versions
  15.14.0
  16.3.0

# ローカル(カレントディレクトリ配下)で利用するNode.jsのバージョンを設定する
$ nodenv local 15.14.0

# グローバル(システム全体)で利用するNode.jsのバージョンを設定する
$ nodenv global 16.3.0

(オプション)nodenv rehashを自動化する

nodenvでNode.jsをインストールしたり、npm install -gしたりした際、それをnodenvに認識させるために以下のコマンドを実行する必要があります。

$ nodenv rehash

毎回このコマンドを実行するのが面倒な場合、nodenv-package-rehashというnodenvのプラグインをインストールすれば解決します。

$ git clone https://github.com/nodenv/nodenv-package-rehash.git "$(nodenv root)"/plugins/nodenv-package-rehash

利用しているシェルに応じて、行を置き換えます。

~/.bashrc or ~/.zshrc
- eval "$(nodenv init -)"
+ eval "$(nodenv init - --no-rehash)"

ここまで設定できればターミナルを閉じて、再度開きます。

最後に、以下コマンドを実行すれば設定完了です。

$ nodenv package-hooks install --all

これで、今後nodenv rehashを実行する必要はなくなります。

Discussion