Meteor Fan (日本語情報)

JavaScriptフレームワークMeteorに関していろいろ紹介する日本語情報サイト

meteor debugでnode-inspectorを使ったデバッグ

「Meteorではどのようにデバッグするのですか」という素朴な質問に対しては、まだいい答えは見つけられていませんが、meteor debugというのがあるので簡単に説明します。内部的にはnode-inspectorを使っているようです。

見つけ方

Meteorでは、すべてはmeteorコマンドから始まります。ヘルプもmeteorからというわけで、

meteor help

とします。debugというのがありました。

meteor help debug

とすると使い方が表示されます。

使い方

meteor help debugで表示される説明を少し見てみます。

The server process will be suspended just before the first statement of server code that would normally execute.

サーバプロセスは通常最初に実行される文の直前で止まります。

In order to continue execution of server code, use either the web-based Node Inspector or the command-line debugger (further instructions will be printed in the console).

実行を再開するにはWebベースのNode Inspectorかコマンドラインのデバッガーを使います(詳細説明は、コンソールに表示されます)。

The easiest way to set breakpoints is to use the debugger keyword: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/debugger

最も簡単な方法はdebuggerキーワードを使ってブレークポイントを設定することです。

ドキュメント

以下のMeteorのドキュメントにもmeteor debugの説明があります。

http://docs.meteor.com/#/full/meteordebug

しかしmeteor help debugとあまり情報が変わりません。

使ってみる

meteor debug

で起動すると、Node Inspectorの接続先が表示されます。これにChromeでアクセスすると、コードの初期の部分で止まっています。そこからステップ実行すると、Meteorの内部に入って大変なので、アプリのコードにdebuggerキーワードを入力する方がよいです。

というような説明が、コードが止まったところのコメントに書いてあるので、とても親切です。

Node InspectorはChromeのDeveloper Toolsを使ったことがあれば、同じような操作なのでそれほど苦労することはなさそうです。

感想

Meteorのプラットフォームのデバッグや勉強のためには使えそうですが、アプリのデバッグには低レベルすぎるかと思いました。そもそもMeteorのコーディングは、手続き的ではなく、宣言的であるため、あまり実行順を意識しないと思います。今後、Meteorならではのデバッグツールが登場するとよいですね。既に出てきているかもしれません。

node-inspectorは単なるインタフェースなので、内部で使われているのはNode.js Debuggerと言うのがおそらく正しいですね。