Tech Sketch Bucket of Technical Chips by TIS Inc.

複数バージョンのNode.jsを使い分けよう!

Pocket

この記事はeXcale Developer's Blogから移転されたものです。


eXcale 開発チームの泉谷(@syguer)です。
以前に複数バージョンのRubyを管理する記事を書きましたが、今回は複数バージョンのNode.jsを管理する方法を紹介します。
eXcaleでは新しいNode.jsのバージョンに移行する際に手間をかけないためという面と、サービスとして複数のバージョンを切り替える必要があるといった理由でnvmというツールを使って複数バージョンのNode.jsを管理しています。
本記事ではそのnvmの使い方について紹介します。

nvmとは

nvm(Node Version Manager)は複数バージョンのNode.jsを管理するためのツールです。
Node.jsは、まだバージョン1.0がでていない成長中のプロダクトであるため開発が活発に行われており、マイナーバージョンのバージョンアップが頻繁に行われています。
また、開発版のみで使える機能といったものも多数あるため、それを試したいといったことも他の言語に比べると多いです。

nvmを使うと、使いたいバージョンをインストールしておけば簡単に切り替えて使い分けることができるので、変化が多いNode.jsの環境で負担を大きく減らすことができます。

ソースコード
Github creationix / nvm
本記事公開時点(2014年5月12日)の最新バージョンはv0.7.0です。

nvmのインストール

nvmのインストールは、リポジトリをgit cloneして用意されているスクリプトを実行して有効化するだけです。

ここまでできたらnvmが使えているか確認してみます。


Node.jsをインストールする

まずはどのバージョンがインストール可能か確認してみましょう。
installできるバージョンの一覧は「nvm ls-remote」コマンドで見ることができます。

Node.jsはマイナーバージョンが偶数バージョンのものが安定版になります。
まず最新安定版であるv0.10.28をインストールしてみます。

v0.10.28がインストールされて使えるようになっています。

次に最新開発版であるv0.11.13をインストールしてみます。

同様にv0.11.13 がインストールされて使えるようになっています。

バージョンの切り替え

現在使われているNode.jsのバージョンを確認するには以下のコマンドを実行します。

切り替えるには「nvm use "バージョン"」とします。

これで切り替えができました。

「nvm use」で切り替えるほかに、.nvmrcというファイルを用意して「nvm run」を使う方法もあります。
.nvmrcがあるディレクトリで「nvm run」を実行すると.nvmrcに記載されたバージョンのnodeを実行してくれます。

.nvmrcがある場合は「nvm run」の他に「nvm use」と「nvm install」も.nvmrcの中に記載されたバージョンに対して実行されるようになります。

※注意
nvmで使うバージョンを設定しても、有効になるのはそのシェルの範囲になります。
新しくシェルを開いた時にデフォルトで使うバージョンを指定するには以下のコマンドを実行します。

この「nvm alias」は指定したバージョンにエイリアスをつけるコマンドで、見た目通りdefaultに"バージョン"を指定しています。
nvm.shは実行時にdefaultに指定しているバージョンをセットするという処理をするので、nvmのインストールの項で説明した「source ~/.nvm/nvm.sh」を~/.bashrc、~/.zshrc等に記載しておけば、シェル起動時にdefaultに指定したバージョンが使われます。


最後に

今回は、nvmを使って複数バージョンのNode.jsを管理する方法を紹介しました。
個人的には、Node.jsはアップデートが頻繁にあるため必須のツールとなっています。
開発言語としてNode.jsを使っている場合はぜひ使ってみてください。

エンジニア採用中!私たちと一緒に働いてみませんか?