Node.js のバージョン切り替えを、これまで nodebrew にお世話になっていました。これまでは特に不自由を感じることもなく使っていたのですが、ある時から、同時進行のプロジェクトが増えたり、過去のプロジェクトの修正などが入ったりして、バージョンを切り替えることが何度遭遇。その度に切り替えていると、バージョンの切り替え間違いでエラーで止まったりが発生。
なんとかプロジェクトごとに切り替えられないものかと他のツールを探してみると、 ndenv というのが! Ruby は rbenv を利用して切り替えしていたので、それと同じ感じに!
これは早速導入してみようと思いインストールを進めようと、イベント参加のために仙台にきているのですが、仙台のコワーキングで作業をしていると、同じくイベント参加のために仙台にきていた @BUN さんに 「**env を複数使っているなら anyenv がいいですよ」と情報をいただいた。 anyenv???
どうやら、 rbenv や phpenv など、**env をまとめて管理できるツールのらしい。
同じことができるなら、シンプルに管理ができるほうがいいので、この anyenv を利用することに。
anyenv とは?
anyenv は **env をまとめて管理出来るようにした環境管理ツール。
**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
v0.12.4
まだインストールしたバージョンが使われるようになっていないため、使うように切り替えます。
$ ndenv global v0.12.4
rbenv も同じですが、 global
で指定するとPC内全体で指定したバージョンを使うように切り替わります。
globalではなく、今いる位置のローカル限定(プロジェクト限定)の場合は、 local
で指定します。
指定したバージョンに切り替わったか確認
指定したバージョンが切り替わったか、 node のコマンドを叩いて確認しましょう。
$ node -v
指定したバージョンが表示されれば切り替え完了。
もしもうまく切り替わっていない時は、 $ ndenv rehash
をたたいてみてください。
ツールを教えていただいた @BUN さん ありがとうございます!