nodenv という Node.js のバージョンマネージャを使う。 Node.js のバージョンマネージャとしては creationix/nvm やら hokaccha/nodebrew などがある。どれも使いやすいので好みで選んで問題ないが、 nodenv は ruby のバージョンマネージャである rbenv/rbenv のクローンであり同じコマンド設計なので、 rbenv や pyenv や plenv に慣れている・合わせたい人にオススメである。
nodenv をインストールする
nodenv をホームディレクトリの .nodenv にクローンする。
$ git clone git://github.com/nodenv/nodenv.git ~/.nodenv
nodenv にパスを通す
zsh であれば .zprofile とか、bash であれば .bash_profile とか。
$ echo 'export PATH="$HOME/.nodenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(nodenv init -)"' >> ~/.bash_profile
つまり、以下の設定が記述されていれば OK である。
export PATH="$HOME/.nodenv/bin:$PATH"
eval "$(nodenv init -)"
シェルを再起動すると nodenv が使えるようになる。
node-build をインストールする
nodenv/node-build という nodenv のプラグインをインストールすることで、 nodenv install と nodenv uninstall が使えるようになる。ホームディレクトリの .nodenv 配下に plugins フォルダがあるので、その中にクローンする。
$ git clone https://github.com/nodenv/node-build.git ~/.nodenv/plugins/node-build
プラグインのロードのため、シェルの再起動もとい nodenv の再ロード(nodenv init)が必要。
node-build-update-defs をインストールする
nodenv/node-build-update-defs という nodenv のプラグインをインストールすることで、 nodenv update-version-defs が使えるようになる。ホームディレクトリの .nodenv 配下に plugins フォルダがあるので、その中にクローンする。
$ git clone https://github.com/nodenv/node-build-update-defs.git ~/.nodenv/plugins/node-build-update-defs
プラグインのロードのため、シェルの再起動もとい nodenv の再ロード( nodenv init )が必要である。このコマンドを実行すると、インストール可能な Node.js をアップデートできる。
$ nodenv update-version-defs
Checking for new nodejs versions
14.8.0 written
nodenv で Node.js をインストールする
以下のようにバージョンを指定して Node.js をインストール。
$ nodenv install 14.8.0
$ nodenv install 12.18.0
すると、 ~/.nodenv/versions/ 配下にインストールしてきた Node.js が配置される。インストールしてきた後は shim のリフレッシュをしておく。
$ nodenv rehash
使う Node.js を指定する
あとは、実際に使う Node.js を指定する。グローバルに指定したいのであれば、 nodenv global を。ローカルで指定したいのであれば nodenv local を使う。 nodenv local を実行すると、カレントディレクトリに .node-version というファイルが作成され、そこに指定したバージョンが書かれている。これによって、そのプロジェクトでは .node-version に書かれたバージョンを参照するようになる。
$ nodenv global 14.8.0
$ nodenv local 14.8.0
指定したあとに、パスが .nodenv 配下の node を向いていればOK。
$ which node
# /Users/1000ch/.nodenv/shims/node
Node.js をアンインストールする
nodenv を使ってインストールした Node.js は、以下のようにしてアンインストールする。
$ nodenv uninstall 14.8.0
そのままですね。