Node.js の管理を「nodebrew」から「anyenv」に変更。 Ruby も Node.js でプロジェクトごとに使うバージョンを切り替える環境にしてみた

このエントリーをはてなブックマークに追加

Node.js のバージョン切り替えを、これまで nodebrew にお世話になっていました。これまでは特に不自由を感じることもなく使っていたのですが、ある時から、同時進行のプロジェクトが増えたり、過去のプロジェクトの修正などが入ったりして、バージョンを切り替えることが何度遭遇。その度に切り替えていると、バージョンの切り替え間違いでエラーで止まったりが発生。

なんとかプロジェクトごとに切り替えられないものかと他のツールを探してみると、 ndenv というのが! Ruby は rbenv を利用して切り替えしていたので、それと同じ感じに!

これは早速導入してみようと思いインストールを進めようと、イベント参加のために仙台にきているのですが、仙台のコワーキングで作業をしていると、同じくイベント参加のために仙台にきていた @BUN さんに 「**env を複数使っているなら anyenv がいいですよ」と情報をいただいた。 anyenv???

どうやら、 rbenv や phpenv など、**env をまとめて管理できるツールのらしい。

同じことができるなら、シンプルに管理ができるほうがいいので、この anyenv を利用することに。

anyenv とは?

anyenv は **env をまとめて管理出来るようにした環境管理ツール。

GitHub : riywo/anyenv

**env はそれぞれのシステムのバージョンを楽に切り替えができるようにしたツールで、私も以前から rbenv は利用をしています。

Ruby を使うなら「rbenv」で複数バージョンを切り替えられるようにしておこう

これを機会に、Ruby も Node.js も、この anyenv を使うように変更してみます。

anyenv のインストール

Github からとってきます。

Github からクローン

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

git で ファイルを ~/.anyenv ディレクトリに clone します。

clone した後はプロファイルに必要なコードをかいて、パスを通します。

パスの設定

※ 本エントリーでは Mac で使うパス基準で書いています。使う環境で適時変更してください。

export PATH=$HOME/.anyenv/bin:$PATH
eval "$(anyenv init -)"

もしくは下記のコードでコマンドから直接プロファイルに追加。

$ echo 'export PATH="$HOME/.anyenv/bin:$PATH"' >> ~/.your_profile
$ echo 'eval "$(anyenv init -)"' >> ~/.your_profile

your_profile のところは、利用しているシェルの設定ファイルを指定してください。 例えば ~/.zshrc もしくは ~/.bash_profile の使っているプロファイルを指定してください。入れ終わったら $ source ~/.zshrc などでパスを有効化しましょう。

これで終わりではなく、ここから更に、利用するための各 **env をインストールします。

rbenv や ndenv など、利用する **env をインストール

$ anyenv install rbenv
$ anyenv install ndenv

インストールが無事に完了していたら下記のような表示に。

$ anyenv version
ndenv: system (set by /Users/USERNAME/.anyenv/envs/ndenv/version)
rbenv: system (set by /Users/USERNAME/.anyenv/envs/rbenv/version)

rbenv や ndenv 以外にも plenv、phpenv、pyenv など、他にも **env で必要なものをインストールしておいてください。

それぞれが導入できたら、必要なバージョンを確認&インストール。ここから先は rbenv などと同じ。

まずは ndenv のほうから。

インストール可能なバージョン一覧

$ ndenv install -l

v0.11.14
v0.11.15
v0.11.16
v0.12.0
v0.12.1
v0.12.2
v0.12.3
v0.12.4

インストールしたいバージョンが確認できたら、早速インストールへ。

必要バージョンのインストール

バージョン確認後のインストールを行います。

Node.js のインストール

$ ndenv install v0.12.4

nodebrew の時に比べると、時間もかからずにパッと終わる不思議。

インストールされたか確認

インストール済の一覧は、versions で確認ができます。

$ ndenv versions
* system (set by /Users/USERNAME/.anyenv/envs/ndenv/version)
v0.12.4

まだインストールしたバージョンが使われるようになっていないため、使うように切り替えます。

$ ndenv global v0.12.4

rbenv も同じですが、 global で指定するとPC内全体で指定したバージョンを使うように切り替わります。

globalではなく、今いる位置のローカル限定(プロジェクト限定)の場合は、 local で指定します。

指定したバージョンに切り替わったか確認

指定したバージョンが切り替わったか、 node のコマンドを叩いて確認しましょう。

$ node -v

指定したバージョンが表示されれば切り替え完了。

もしもうまく切り替わっていない時は、 $ ndenv rehash をたたいてみてください。

ツールを教えていただいた @BUN さん ありがとうございます!