node-inspectorとnode-devでnode.jsをデバックする方法
まだ慣れが無くてついつい忘れてしまうので、自分への備忘録も含めて
以前からのエントリの通り、node.jsが動いているサーバはMacBookAir上のVMWareFusion上のCentOS5.6なので、Mac⇔Centでnatも入っているのでそこも記載。
※そんなメンドくさくない、普通の環境の人の(例えばMAC上のみで動かしてます。みたいな)場合、NATの部分を読み飛ばして貰えれば
後は同じ事です。
まずは、CentOS上でnode-inspectorとnode-devの起動
# node-inspector &
[1] 31641
# visit http://0.0.0.0:8080/debug?port=5858 to start debugging# node-dev --debug hogehoge.js
4 Jul 17:25:50 - [INFO] Started
debugger listening on port 5858
node-inspectorはバックグラウンドで起動すれば良いみたいで、node-devはプラスのデバッカーとして。
(意味があるかわからないけど、ずっとnode-devで起動していたので名残が・・・)
今回の「hogehoge.js」ファイルのlistenポートは8124にしているので、上のinspectorと含めて8080+8124をnat(確認)しておく
以下はMacBookAirにて(CentOSのIPは下記の通り192.168.8.128)
# sudo su -
root# cd /Library/Application\ Support/VMware\ Fusion/
root# cd vmnet8
root# vi nat.conf[incomingtcp]
8080 = 192.168.8.128:8080
8124 = 192.168.8.128:8124
2222 = 192.168.8.128:22
※natしたいポートが記載されているか確認できれば、VMWareのrestartroot# ../boot.sh --restart
上記設定により、正しくnatされていれば「http://MacのIP:8080/debug?port=5858」でchromeでnode-inspectorが起動するはず
※この時MacのIPは「172.21.36.143」
後は、node-inspectorが起動している画面で、ブレークポイントを張りたい場所の行番号をクリックしてブレークポイントを設定し、
別のタブにて「http://172.21.36.143:8124」にアクセスして、ブレークポイントの箇所まで動かせばOK!
ただ、これ毎回やるのメンドくさいし。。。多分こういうのってポートとかってそんなに変わらないだろうし。
と言う事で、こいつのシェルスクリプト作って、その.shをコマンドでalias登録しておこう。
#mkdir /x
#vi /x/node.sh
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
#!/bin/sh
/usr/local/bin/node-inspector &
node-dev --debug $1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
#chmod 775 /x/node.sh
#/x/node.sh hogehoge.js
#ps axu | grep node
>root 2023 /bin/sh ./node.sh hogehoge.js
>root 2024 node /usr/local/bin/node-inspector
>root 2025 node /usr/local/bin/node-dev --debug hogehoge.js
>root 2027 node --debug /usr/local/lib/node_modules/node-dev/wrapper.js hogehoge.jsと言う事で、引数に起動したい.jsを渡してnode.shを叩くと無事node-inspectorとnode-dev --debugで起動
最終的にこのシェルスクリプトをコマンドとしてaliasしておく。
#vi ~/.bashrc
alias nodedebug='/x/node.sh'
※1行追記source ~/.bashrc
#nodedebug hoge.js
無事起動。