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

インストールされたNode.jsのバージョンを切り替えたくなるタイミングがありますよね。バージョンアップの際はもとより特定バージョン下での挙動を確認したいとき、バージョンを上げたがうまく動かなくなってしまったので切り戻しを行いたい時などです。実現するためのツールはいくつかあるのですが今回は「nodebrew」をmacOSに入れてみます。

nodebrewのインストール

brewで一発です。

$ brew install nodebrew
$ nodebrew --version
nodebrew 0.9.8

setupを実行しディレクトリを作成した後に、作成されたディレクトリにパスを通します。ここではzshを使用しているため~/.zshrcを編集しましたが、デフォルトのbashを使用している場合は~/.bashrcなどに読み替えてください。

### nodebrew用のディレクトリ作成
$ nodebrew setup
Fetching nodebrew...
Installed nodebrew in $HOME/.nodebrew

### nodebrewのパスを通す
$ vi ~/.zshrc
export PATH=$HOME/.nodebrew/current/bin:$PATH
$ source ~/.zshrc

Node.js/npmを入れる

最新版をインストール

最新の安定版(LTS版)や、最新版を入手したい場合は以下を実行します。もちろんnpmも同時にインストールされます。

### LTS版
$ nodebrew install-binary stable

### 最新版
$ nodebrew install-binary latest

ソースをダウンロードしその場でコンパイルすることも可能です。install-binaryではなくinstallとします。環境にもよりますがコンパイルにはかなりの時間がかかりますので、バイナリではうまくいかない場合や特別な事情がある場合はこちらを用います。

$ nodebrew install stable

特定のバージョンをインストール

$ nodebrew install-binary v8.5.0

インストール可能な一覧を表示

$ nodebrew ls-remote 
v0.0.1    v0.0.2    v0.0.3    v0.0.4    v0.0.5    v0.0.6    
(中略)
v8.0.0    v8.1.0    v8.1.1    v8.1.2    v8.1.3    v8.1.4    v8.2.0    v8.2.1
v8.3.0    v8.4.0    v8.5.0    v8.6.0    v8.7.0    v8.8.0    v8.8.1    v8.9.0
v8.9.1    v8.9.2    v8.9.3    v8.9.4    

v9.0.0    v9.1.0    v9.2.0    v9.2.1    v9.3.0    v9.4.0    v9.5.0    v9.6.0
v9.6.1    
(中略)
io@v3.0.0 io@v3.1.0 io@v3.2.0 io@v3.3.0 io@v3.3.1 

インストール済みの一覧を表示

手元の環境にすでにインストールされたバージョン一覧です。

$ nodebrew ls
v7.2.1
v7.10.1
v8.9.4

current: v8.9.4

currentは現在選択されているバージョンになります。

バージョンを切り替える

インストールしただけでは利用することができません。必ず宣言を行う必要があります。またバージョンを切り替える際も同じ要領でnodebrew useを使用します。

$ nodebrew use stable
use v8.9.4

$ node --version
v8.9.4
$ npm --version
5.6.0

バージョンを直接指定することももちろん可能で、Node.jsに合わせてnpmも変更されます。

$ nodebrew use v7.10.1
use v7.10.1

$ node --version
v7.10.1
$ npm --version       
4.2.0

その他のコマンド

一時的に特定のバージョンで動かしたい

以下のようにすると、このコマンドを実行したときのみv0.10.29app.jsを動かすことができます。

$ nodebrew exec v0.10.29 -- node app.js

特定のバージョンを削除する

$ nodebrew uninstall (バージョン)

nodebrew自体のバージョンを上げる

$ nodebrew selfupdate
Fetching nodebrew...
Updated successfully

参考ページ

github.com

ハンズオンNode.js

ハンズオンNode.js

Amazon