3

我正在尝试使用本机节点调试器调试节点子进程。例如,请参阅此repo

我尝试了所有选项之王,根据:debug1debug1debug3(以及我在网上找到的许多其他参考资料)。

这些选项都不适合我..

这是我的示例代码:

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/...铬。调试主进程效果很好,我也看到了子进程的输出。唯一不起作用的是子进程的调试......

我在这里做错了什么?

4

1 回答 1

6

回答我自己的问题,以防万一有人遇到和我一样的问题。根据这个问题,解决方案是:

const file = path.resolve('./child.js');
const args = ['--inspect=9228', '--debug-brk', file];
const ls = spawn('node', args);

您必须在端口上打开chrome-devtools://devtools/...9222 端口 + 子进程的新检查窗口9228(因为这是我在此示例中添加的端口)

你可以在这里看到一个工作示例

于 2016-09-21T20:18:59.870 回答