Node Version Manager for Windows を作ってみた
これは JavaScript Advent Calendar 2011 (Node.js/WebSocketsコース) の1日目の記事です。
nvmw (Node Version Manager for Windows) とは
Mac OS や Linux など Unix 系の OS で利用できる nvm (Node Version Manager) の Windows 版とするべく私 @hakobera が開発している Node.js + npm のインストール用ツールです。Node.js v0.6 以降のインストールをすることができます。
ソースコードは github で公開しています。
hakobera/nvmw · GitHub
使い方
nvmw のインストール
ネットワークに繋がった状態で、コマンドプロンプトから以下のコマンドを入力するだけです。
> git clone git://github.com/hakobera/nvmw.git "%HOMEDRIVE%%HOMEPATH%\.nvmw" > set "PATH=%PATH%;%HOMEDRIVE%%HOMEPATH%\.nvmw"
毎回、set PATH するのが面倒な場合は、%HOMEDRIVE%%HOMEPATH%\.nvmw" を環境変数に追加しておきます。
Node.js + npm のインストール
Node.js と npm をインストールするには以下の install コマンド利用します。
> nvmw install v0.6.3
Node.js は指定したバージョン(上記だと、v0.6.3)を公式サイトからダウンロードし、npm は github から最新版がインストールされます。
複数のバージョンを切り替えるには use コマンドを、インストールされているバージョンと現在選択中のバージョンを確認するには ls コマンドを使います。
> nvmw use v0.6.2 Now using Node v0.6.2 > nvmw ls v0.6.2 v0.6.3 Current: v0.6.2
個別のバージョンを削除したい場合は uninstall コマンドを使います。
> nvmw uninstall v0.6.2
nvmw と nvmw を使ってインストールした Node.js 全てをアンインストールしたい場合は、.nvmw フォルダごと削除するだけで OK です。レジストリも使わないので環境汚染しない安心設計です。
公式インストーラを使わないのはなぜか?
Node.js は v0.6.3 から npm を含んだ公式の msi インストーラが配布されています。ただし、この公式インストーラには以下の(自分の環境にとって)致命的な制限があります。
- インストール先が選べない
- C:\Program Files\nodejs (64bit の場合は、C:\Program Files(x86)\nodejs) にインストールされます
- つまり、複数のバージョンが共存できません(インストール後に移動すれば話は別ですが、だったら最初から選択できるようにして欲しい)
上記がなぜ致命的かというと、会社のマシンに C:\Program Files にソフトウェアをインストールする権限がなかったからです。これだと「インストールしてから移動」して複数バージョンの共存、ということもできません。
バージョンアップが速い Node.js で複数バージョンを共存できないのは、色々と致命的なので、私は公式インストーラではなく、nvmw を利用しています。
npm の最新バージョンはいずこに?
Node.js v0.6.3 から npm が本体のリポジトリ (deps/npm) に取り込まれました。ただし、この場所のソースは Node.js のパッケージ時に一括更新されるようで、実際の開発は元のリポジトリ
の tar-js ブランチで開発されています。(最新バージョンは現時点で 1.1.0-alpha-3 で Node.js v0.6.3 同梱のものは 1.1.0-alpha-2ですので、1つバージョンが上がっています。)
alpha が取れると同時に master に merge されるとは思いますが、それまでは master は 1.0.106 のままなので気をつけてください。もちろん nvmw は tar-js ブランチをみるようになっています。
もし自分で npm 最新版をビルドしたいという方は以下の方法で、npm をカスタムビルドすることができます。これは Mac OS、Linux 環境でも同じなので、興味がある方は試してみてください。
> git clone git://github.com/isaacs/npm.git > cd npm > git fetch > git checkout -b tar-js origin/tar-js > git submodule update --init --recursive > node cli.js install -g
最近の npm の修正は Windows の不具合修正を多く含んでいるので、Windows ユーザはできるだけ、最新版を使うようにした方が良いかと思われます。(ちなみに 1.0.106 では Express がインストールできません orz)
まとめ
東京Node学園やNode塾などを見ていても、Node.js 開発者は圧倒的に Mac ユーザが多いですが、仕事では Windows しか使えないという方も多いはずです。
Windows に初めて対応バージョンにしては、Node.js 本体はとても良くできていて、十分実用に耐えうるものだと思っています。npm も当初は問題が多発していましたが、着実に良くなってきて、Express や Socket.IO などの有名なモジュールは大抵インストールできるようになっています。
Windows ユーザの皆様、nvmw で手軽に Node.js を初めてみませんか?