アシアルブログ

アシアルの中の人が技術と想いのたけをつづるブログです

node.jsの開発時に役立つモジュール

こんにちは、中川です。
今回もPHPには一切触れないで、node.jsについて書いていこうと思います。

主に開発時に便利なモジュールを紹介いたします。

■今回紹介するもの
・nvm
・node-dev
・node-inspector



■nvm
https://github.com/creationix/nvm

node.jsはまだまだ開発途上ということもあり、頻繁にバージョンアップが行われています。
現在では0.2系のstableバージョンと、0.3系の開発バージョンがあります。
複数のバージョンをインストールして、簡単に切り替えられるようにするために、
開発環境では、nvmを使っています。

セットアップは非常に簡単で、


$ git clone git://github.com/creationix/nvm.git ~/.nvm
$ . ~/.nvm/nvm.sh

これで準備は完了です。

あとは、以下のようにバージョンを指定してインストールが行えます。


$ nvm install v0.3.6


インストールは、~/.nvm/ 以下に各バージョン毎のディレクトリに配置されます。
また、node.jsのインストール後に、node.jsパッケージ管理のnpmもインストールしてくれ、
npmにてインストールしたモジュールは各バージョンごとに管理されることになります。

インストール後、利用バージョンの指定は、use オプションにて行います。


$ nvm use v0.3.6


サーバへのログイン時に毎回実行しなくてもいいように、.profileファイルなどに以下のように追加しておきます。

$ vi ~/.bash_profile


. ~/.nvm/nvm.sh
nvm use v0.3.6


他にも、nave ( https://github.com/isaacs/nave )というものでも同様にバージョン管理ができますが、両方試してみてなんとなくにnvmに落ち着きました。

■node-dev
https://github.com/fgnass/node-dev

さて、node.jsのインストール後は開発ですが、
サーバプログラムなどを作っていると、
プログラムの「実行 -> 修正 -> 再起動 -> 修正 -> 再起動」という流れは、
普段PHPを触っている身としては非常にうっとうしいです。
そこで、ファイルの更新があると自動で再起動してくれるnode-devを利用します。

npmにて、node-dev をインストールし、node-devコマンドでスクリプトを実行します。



$ npm install node-dev
$ node-dev server.js


あとは、いつもどおり、ブラウザで確認、エディタで修正。
これで、ファイルの更新を検知してスクリプトが自動で再起動されます。快適ですね。

他にも、
node-daemon ( https://github.com/theteam/node-daemon )
node-Daemon ( https://github.com/Eyjafjallajokull/node-Daemon )
nodejs-autorestart ( https://github.com/shimondoodkin/nodejs-autorestart )
node-hot-reload ( https://github.com/shimondoodkin/node-hot-reload )
などなどリロード系は色々あるようですね。
上記のどれかは試したのですが、今は開発時はnode-devに落ち着きました。

■node-inspector
https://github.com/dannycoates/node-inspector

こちらは、デバッガになります。
クライアント側のWebKitブラウザ(Chrome, Safariなど)を使ってブレークポイントの設置などが行えます。

こちらもインストールは、npmにて。


$ npm install node-inspector


以下のようなサンプルスクリプトで試してみます。

server.js


var http = require('http');

http.createServer(function(req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});

  var str = 'Hello World';

  res.end(str);
}).listen(3000); // ポート3000でListen


まずは、node-instapectorを起動します。


$ node-inspector  &


※ コマンドのあとに&を付けてバックグラウンドで動作させてます。
※私は&で実行ではなく、screenで別タブで実行しています。

その後、debugオプションを付けて、nodeコマンドでスクリプトを実行します。


$ node --debug server.js


上記のサンプルスクリプトでは通常の確認は、 http://localhost:3000/ となりますが、
デバッガ起動は、デバッグ用のURLにブラウザ(Webkit系)でアクセスします。

http://localhost:8080/debug?port=5858

そうすると、デバッグ画面が立ち上がりブラウザ上でスクリプトの確認や、
ブレークポイントの設定が可能となります。



標準のデバッガも充実してきているようですが、ブラウザで気軽に操作できるので気に入っています。
また、ブラウザから他の人にソースを確認してもらえたりするのも便利ですね。

他にもまた何か見つけましたらご紹介していきたいと思います。