Edited at

ndenvを利用してnodeのバージョンを管理する

nodeのバージョンをプロジェクトごとに管理したい場合があると思います。

nodeのバージョンが対応しておらずgulpの実行エラーが起きるときなどがいい例でしょう。

nodeのバージョン管理マネージャーには色々なものがあります。

その中のひとつに、Rubyのバージョン管理マネージャーで有名なrbenvに似た仕様をもつndenvというものがあります。

今回はndenvのインストール方法とndenvでnodeのバージョンを変える手順について説明します。


ndenvのインストール

$ git clone https://github.com/riywo/ndenv ~/.ndenv

もしくはHomebrewでもインストール可能です。

$ brew install ndenv


ndenvのパスを追加

以下をシェルの設定ファイルに追加します。

echo 'export PATH="$HOME/.ndenv/bin:$PATH"'

echo 'eval "$(ndenv init -)"'

シェルの設定ファイルを変更したらシェルを再起動しましょう。


node-buildをインストール

node-buildはnode自身をインストールするためのnbenvのプラグインです。

node-buildをインストールすることでnbenv installコマンドが利用できます。

インストールは以下のようにします。

$ git clone https://github.com/riywo/node-build.git $(ndenv root)/plugins/node-build


利用するバージョンのnodeをインストールする

ndenvでインストールできるnodeの一覧を確認します。

$ ndenv install -l

インストールはndenv install、ndenvで管理されているnodeの一覧はndenv versionsで確認できます。

### インストール前

$ ndenv versions
* system (set by /Users/toshiharu.nishina/.ndenv/version)

### インストール
$ ndenv install v8.1.0

### インストール後
$ ndenv versions
* system (set by /Users/toshiharu.nishina/.ndenv/version)
v8.1.0

インストールしたらrehashをしておきます。

$ ndenv rehash


nodeのバージョンを変更する

プロジェクト単位で管理する場合はndenv local、グローバルで設定する場合はndenv globalとします。

### 変更前

$ node -v
v11.1.0

### バージョンの変更
$ ndenv local v8.1.0

### 変更後
$ node -v
v8.1.0

$ ndenv versions
system
* v8.1.0 (set by /Users/toshiharu.nishina/git/legacy_design/.node-version)