2013.01.27追記
最新版で動作するよう記事を修正しました。
はじめに
この記事では、Mac OS X Lion上にnode-inspectorとnode.jsをインストールし、node.jsをデバッグ(ステップ実行)する手順について書いています。
この記事を書くにあたり、以下のエントリを参考にさせていただきました。
ソフトバンククリエイティブ
売り上げランキング: 13,297
node-inspector
node-inspectorは、サーバサイドのJavaScriptをブラウザ上(Webkit系のブラウザ)でデバッグできるようにしてくれるライブラリです。
node-inspectorってのがあって、これがあると
chrome上(webkit系ならいけるらしい)でクライアントサイドのjsデバッグみたいに
サーバサイドのjsもデバッグできる。
でもnode.js0.3以上がないと動かないので注意。
node.jsでのデバッグ方法 - すにぺっと
動作環境
- Mac OS X Lion
- node.js 0.8.18
- npm@1.1
- node-inspector@0.2.0beta3
- Google Chrome 24.0.1312.56
node.jsのインストール
node.jsのインストールに関しては、こちらのエントリを参照してください。
npmのインストール
node.jsのパッケージ管理システムnpmをインストールします。
sudo curl https://npmjs.org/install.sh | sudo sh
node-inspectorのインストール
npmを使ってnode-inspectorをインストールします。現在の最新版である0.1.10を入れてみます。
sudo npm install -g node-inspector >node-inspector@0.2.0beta3 /usr/local/lib/node_modules/node-inspector >├── async@0.1.22 >├── connect@1.8.7 (mime@1.2.9, formidable@1.0.11, qs@0.5.3) >└── socket.io@0.9.13 (base64id@0.1.0, policyfile@0.0.4, redis@0.7.3, socket.io-client@0.9.11)
サンプルコードを用意する
以下のコードをhelloworld.jsという名前で任意のフォルダにコピーします。
var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n'); }).listen(1337, "127.0.0.1"); console.log('Server running at http://127.0.0.1:1337/');
node-inspectorの起動
以下のコマンドでnode-inspectorが起動します。
node-inspector > info - socket.io started >visit http://0.0.0.0:8080/debug?port=5858 to start debugging
node.jsをデバッグモードで動かす
ターミナルをもう1枚起動して、node.jsをデバッグモードで起動します。このとき、カレントディレクトリはhelloworld.jsを格納したディレクトリにします。
node --debug helloworld.js >debugger listening on port 5858 >Server running at http://127.0.0.1:1337/
デバッグしてみる
1. Google Chromeを起動して、http://0.0.0.0:8080/debug?port=5858にアクセスします。Google ChromeのInspectorが起動するので、さきほど作成したhelloworld.jsを選択します。
2. helloworld.js内にブレークポイントを設定します。行番号のあたりをクリックするとブレークポイントが設定できます。
3. Google Chromeのタブをもう1枚開き、http://127.0.0.1:1337/にアクセスします。すると、1枚目のタブでスクリプトがブレークポイントでストップして、ステップ実行することができるようになります。