WindowsでNode.js(npm)触るならnodistを使うといいかもしれない

たまにWindowsでもNode.jsを使いたい時無いですか?

私はnode.js(と言うよりnpm)を使ってツールをインストールしたい場合があり、一応(?)Node.jsをインストールしています。

ただNode.jsはバージョンが上がるのが早いので(公式の便利なインストーラがあるとはいえ)都度更新しなければなりません。

ある時ふとしたきっかけでWindows用の便利なバージョン管理ツール「nodist」を見つけてからそれを使うようにしています。

nodistはWindowsのみで使えるNode.js用のバージョン管理ツールです。

下記環境でテストしてみました。

  • Windows7 Professional 64bit
  • nodist v0.3.5

まず、nodistコマンドを使えるようにします。

任意の場所に zip ファイルをダウンロードするか、git clone git://github.com/marcelklehr/nodist.git します。

ndist コマンドが使えるようにパスを設定します。

C:Userskamiyamnodistbinnodist

私はユーザフォルダの下に配置しています。

では、nodistが使えることを確認しましょう。

> nodist -v 
v0.3.5

続いて、必要なモジュールをダウンロードするために、updateを実行

> nodist update

ではNode.jsをインストールします。

> nodist + v0.10.2 
0.10.2

あっさり入りました。
nodistはデフォルトでバイナリ(.exe)ファイルをダウンロードするので早いですね。

この他、「 nodist add v0.10.2 」でもダウンロード出来ます。

ダウンロードしたバージョンを利用する場合は、nodist use を使います。
(useを省略することも可能)

あ、私の環境では http://nodejs.org/ からダウンロードできる純正(?)のインストーラでNode.jsをインストールしているとうまくバージョン切り替えができなかったのでアンインストールしました。

> nodist (use) v0.10.2
0.10.2

バージョンを確認します。

> node -v
0.10.2

アンインストールは

> nodist - v0.10.2      ## nodist rm v0.10.2 でも可

ダウンロードしたバージョンを確認するには nodist を実行します。

> nodist     ## nodist (ls|list) でも可
  0.8.1
  0.8.2
  0.8.14
  0.10.1
> 0.10.2

では Node.js のフレームワーク Express をグローバルインストールしてみます。

> npm install -g express 
npm http GET https://registry.npmjs.org/express
npm http 304 https://registry.npmjs.org/express
...(省略)
@pathtousernodistbinexpress -> @pathtousernodistbinnode_modulesexpressbinexpress
express@3.2.0 @pathtousernodistbinnode_modulesexpress
├── methods@0.0.1
├── fresh@0.1.0
├── cookie-signature@1.0.1
├── range-parser@0.0.4
├── buffer-crc32@0.2.1
├── cookie@0.0.5
├── commander@0.6.1
├── debug@0.7.2
├── mkdirp@0.3.5
├── send@0.1.0 (mime@1.2.6)
└── connect@2.7.6 (pause@0.0.1, buffer-crc32@0.1.1, bytes@0.2.0, qs@0.5.1, fo
rmidable@1.0.11)

グローバルインストールされたnpm_modules はNode.jsのバージョンを問わず同一のフォルダに展開されるため、一度インストールすれば nodistでバージョンを切り替えてもどのバージョンからも利用可能です。

あとは、普通にインストーラなどでインストールしたNode.jsと変わりませんね。

> express express_apps

   create : express_apps
   create : express_apps/package.json
   create : express_apps/app.js
   create : express_apps/public
   create : express_apps/public/javascripts
   create : express_apps/public/stylesheets
   create : express_apps/public/stylesheets/style.css
   create : express_apps/public/images
   create : express_apps/views
   create : express_apps/views/layout.jade
   create : express_apps/views/index.jade
   create : express_apps/routes
   create : express_apps/routes/index.js
   create : express_apps/routes/user.js

   install dependencies:
     $ cd express_apps && npm install

   run the app:
     $ node app
> cd express_apps
> npm install
> node app.js
Express server listening on port 3000

http://localhost:3000 にアクセスしてサーバが立ち上がっていることを確認。

Sails.js ちゃんと使えるようです。

> sails new sails_apps
info: Generating Sails project (sails_apps)...
debug: Generating app directory...
debug: Generating directory public...
debug: Generating directory public/images...
debug: Generating directory assets...
debug: Generating directory assets/js...
debug: Generating directory assets/templates...
debug: Generating directory assets/mixins...
debug: Generating directory assets/styles...
debug: Generating directory views...
debug: Generating directory views/home...
debug: Generating directory api...
debug: Generating directory api/models...
debug: Generating directory api/adapters...
debug: Generating directory api/controllers...
debug: Generating directory api/services...
debug: Generating directory api/policies...
debug: Generating directory config...
debug: Generating directory config/locales...
debug: Generating package.json...
debug: Generating README.md...
> cd sails_apps
> npm install
> sail lift  

http://localhost:1337/ にアクセス

ということで、WindowsでNode.jsを使うことは少ないかもしれませんが、冒頭でも書いたとおり、Node.js(npm)を使ってインストールするツールも多くなってきているので使ってみてはいかがでしょうか?