【mac】node.jsのバージョン管理(切り替え)について調べたことメモ

各バージョンのnode.jsをhomebrewでインストールして、bash_profileでPATHをちくちくいじって変更していた。が、npmやnpmでインストールしたソフトもバージョン固定でなく複数バージョン使えるようにしたかった。自分の環境ではnpmでインストールしたものが、/usr/local/bin/以下にインストールされてしまいうまくできなかった。なのでnodejsのバージョン切り替えツール?を試したのでそのときのメモ。

.bash_profileで切り替える
$ which node
/usr/local/opt/node@8/bin/node

$ which npm
/usr/local/bin/npm

.bash_profile

export PATH="/usr/local/opt/node@6/bin:$PATH"
# export PATH="/usr/local/opt/node@8/bin:$PATH"
# export PATH="/usr/local/opt/node@9/bin:$PATH"
nodebrewで切り替える

nodebrew使うと、同一マシンの中に複数バージョンのnode.jsをインストールして切り替えが可能。切り替え方法はコマンドで手動で切り替える形。

# nodebrewインストール
# 参考 https://github.com/hokaccha/nodebrew#install
$ curl -L git.io/nodebrew | perl - setup

# export PATH=$HOME/.nodebrew/current/bin:$PATH を ~/.bash_profileに追加
$ source ~/.bash_profile

# インストール可能なnode.jsのバージョン確認
$ nodebrew ls-all

# v6.13.1とv8.10.0 を入れる
$ nodebrew install-binary v6.13.1
$ nodebrew install-binary v8.10.0

# v6.13.1を有効にする
$ nodebrew use v6.13.1

# node.jsとnpmのPATHが~/.nodebrew/current/binになる
$ which node
~/.nodebrew/current/bin/node

$ which npm
~/.nodebrew/current/bin/npm

# 各バージョンごとにnpmでインストールしたものが保存される
$ ls -1 ~/.nodebrew/node
v6.13.1
v8.10.0
v9.8.0
ndenvで切り替える

ndenvも複数バージョンのnode.jsをインストールして切り替え可能。nodebrewと違って、ディレクトリ以下の.node-versionを見て勝手にどのバージョンか判定してくれるので手動での切り替えが不要。これもバージョン管理するとよいのかも。

# ndenvインストール
# 参考 https://qiita.com/noraworld/items/462689e108c10102d51f
$ git clone https://github.com/riywo/ndenv ~/.ndenv

# ~/.bash_profileに以下を追加
# export PATH="$HOME/.ndenv/bin:$PATH"                                                                                                                                                                                                        
# eval "$(ndenv init -)"                                                                                                                                                                                                                      
                                                                                                                                                                                                                                              
$ source ~/.bash_profile
$git clone https://github.com/riywo/node-build.git $(ndenv root)/plugins/node-build

# インストール可能なnode.jsのバージョン確認
$ ndenv install -l

# v6.13.1とv8.10.0 を入れる
$ ndenv install v6.13.1
$ ndenv install v8.10.0

# 対象のディレクトリに移動して、v6.13.1を有効にする
$ cd /path/to/project
$ ndenv local v6.13.1

# .node-versionに書き込まれる
$ cat .node-version
v6.13.1

$ which node
~/.ndenv/shims/node

$ which npm
.ndenv/shims/npm

# 各バージョンごとにnpmでインストールしたものが保存される
$ ls -1 ~/.ndenv/versions/
v6.13.1
v9.8.0

まだ、ちゃんと使ってないので不都合に出会ってないけどとりあえずやりたいことはできそう。以上です。