工具版本
Node.js version 8.11.1 LTS
Chrome 65
WebStorm 2017.2.2
Chrome
使用 –inspect 或者 –inspect-brk 启动程序。–inspect-brk 会在代码第一行暂停。
$ node --inspect-brk foo.js
Debugger listening on ws://127.0.0.1:9229/53bd6640-621f-4e31-bc89-a00fd7c34f71
控制台会显示程序运行的端口号,例如 9229。也可以自定义端口号如 --inspect = 8848
。
打开 Chrome 输入 chrome://inspect
,点击 Configure 设置地址和端口号,在 Remote Target
里就会显示正在运行的 Node 程序,点击 inspect 即可进行调试。
WebStorm
本地调试
直接使用 WebStorm 自带的调试工具就行。
远程调试
使用 –inspect 参数启动程序,在 WebStorm 依次点击 Run > Edit Configurations > + > Chromium Remote
,设置好端口号,然后点击 debug 即可。
多线程
为子线程设置新的调试端口。fork 和 spawn 设置方法有所不同。
child_process.fork(child, [], { execArgv: ['--inspect-brk=9222'] });
child_process.spawn('node', ['--inspect-brk=9222', child]);
子线程即可在 Chrome 和 WebStorm 中调试了。