Node.js には同時に複数の LTS (Long Term Support) がサポートされる期間が存在している。 また、特定のバージョンの Node.js でないと動かないようなライブラリも結構ある。 そこで、今回は複数バージョンの Node.js をインストールして管理できる nvm を使ってみることにする。
使った環境は次の通り。
$ sw_vers ProductName: Mac OS X ProductVersion: 10.11.6 BuildVersion: 15G1108
インストール
まずは Homebrew を使って nvm をインストールする
$ brew install nvm
Homebrew がインストールされていないときは?
以下の手順でインストールする。
$ xcode-select --install $ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
セットアップ
インストールできたら、次に nvm を設定する。
まずは nvm が使う作業ディレクトリを用意しておく。
$ mkdir ~/.nvm
次にシェルの設定ファイルに nvm にパスを通すための設定を追加する。 次の設定では nvm がインストールされていない環境で使ってもエラーにならないよう対処してある。 何でそんなことをするかというと、色んな環境で設定ファイルを使いまわしてるから。
$ cat << 'EOF' >> ~/.zlogin # nvm if [ -e $(brew --prefix nvm)/nvm.sh ]; then export NVM_DIR="${HOME}/.nvm" source $(brew --prefix nvm)/nvm.sh fi EOF
設定を書き込む先は、使っている設定ファイルごとに .bashrc とか .zshrc とか上手いこと変更する。
設定を書き込んだらシェルの設定ファイルを読み込み直す。
$ source ~/.zlogin
これで nvm にパスが通って使い始める準備ができた。
$ nvm --version 0.32.1
使ってみる
まずはインストールできる Node.js のバージョンは nvm ls-remote
サブコマンドで確認できる。
$ nvm ls-remote | tail v6.4.0 v6.5.0 v6.6.0 v6.7.0 v6.8.0 v6.8.1 v6.9.0 (LTS: Boron) v6.9.1 (Latest LTS: Boron) v7.0.0 v7.1.0
そして、現在インストールされているバージョンは nvm ls
で確認できる。
今は何もインストールされていないため N/A
となっている。
また、主要な LTS のバージョンについてはインストールされていない状態でも候補として表示されるようだ。
$ nvm ls N/A node -> stable (-> N/A) (default) iojs -> N/A (default) lts/* -> lts/boron (-> N/A) lts/argon -> v4.6.2 (-> N/A) lts/boron -> v6.9.1 (-> N/A)
試しに v4.x 系の LTS をインストールしてみる。 --lts オプションをつけると LTS 版しか入らないようになるみたい?
$ nvm install lts/argon --lts VERSION_PATH='' ######################################################################## 100.0% Computing checksum with shasum -a 256 Checksums matched! Now using node v4.6.2 (npm v2.15.11) nvm_ensure_default_set: a version is required
インストールすると nvm ls
コマンドにも有効になっているのが v4.6.2
という表示が出た。
$ nvm ls -> v4.6.2 node -> stable (-> v4.6.2) (default) stable -> 4.6 (-> v4.6.2) (default) iojs -> N/A (default) lts/* -> lts/boron (-> N/A) lts/argon -> v4.6.2 lts/boron -> v6.9.1 (-> N/A)
また、node
コマンドも使えるようになっている。
$ node --version v4.6.2
次に、別のバージョンもインストールしてみよう。 今度は v6.x 系の LTS をインストールする。
$ nvm install lts/boron --lts VERSION_PATH='' ######################################################################## 100.0% Computing checksum with shasum -a 256 Checksums matched! Now using node v6.9.1 (npm v3.10.8) nvm_ensure_default_set: a version is required
すると、インストールしただけでそのバージョンが有効になった。
$ nvm ls v4.6.2 -> v6.9.1 node -> stable (-> v6.9.1) (default) stable -> 6.9 (-> v6.9.1) (default) iojs -> N/A (default) lts/* -> lts/boron (-> v6.9.1) lts/argon -> v4.6.2 lts/boron -> v6.9.1
node
コマンドで確認してもバージョンが v6.9.1
に切り替わっている。
$ node --version v6.9.1
もし、使うバージョンを切り替えたいときは nvm use
サブコマンドを使えば良い。
$ nvm use 4.6.2 Now using node v4.6.2 (npm v2.15.11)
これでお目当てのバージョンに切り替わった。
$ node --version v4.6.2
めでたしめでたし。