无法debugging节点subprocess(使用节点本机debugging器)
我试图debugging节点subprocess,使用本地节点debugging器。 例如,看这个回购 。
我尝试了所有的选项王,根据: debug1 , debug1 , debug3 (和我在网上find很多其他的参考)。
非这些选项为我工作..
这是我的示例代码:
index.js:
const spawn = require('child_process').spawn; const path = require('path'); const ls = spawn('node', [path.resolve('./child.js')], {execArgv: '--debug-brk=4545'}); ls.stdout.on('data', (data) => { console.log(`stdout: ${data}`); }); ls.stderr.on('data', (data) => { console.log(`stderr: ${data}`); }); ls.on('close', (code) => { console.log(`child process exited with code ${code}`); });
child.js:
debugger; const a = 123; console.log(a);
然后我运行:
node --debug-brk --inspect=9222 index.js
我打开chrome-devtools://devtools/...
debugging主进程的效果很好,我也看到了subprocess的输出。 只有不工作的东西是subprocess的debugging…
我在这里做错了什么?
回答我自己的问题,以防万一有人遇到同样的问题。 根据这个问题 ,解决办法是:
const file = path.resolve('./child.js'); const args = ['--inspect=9228', '--debug-brk', file]; const ls = spawn('node', args);
您将不得不打开chrome-devtools://devtools/...
带有9222端口+一个用于subprocess的新的检查窗口,在端口9228
(因为这是我在本例中添加的端口)
你可以在这里看到一个工作的例子