2016-09-21 81 views
1

我正在嘗試使用本地節點調試程序來調試節點子進程。例如,請參閱此repo無法調試節點子進程(使用節點本機調試器)

我試過所有的選項王,根據:debug1debug1,debug3(和我在網上找到的很多其他參考資料)。

這些選項不工作對我來說..

這是我的示例代碼:

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

回答我自己的問題,以防萬一有人會遇到同樣的問題。根據這一issue,該解決方案是:

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

你將不得不打開chrome-devtools://devtools/...與9222口+一個新的檢查子進程窗口,在端口9228(因爲這是我在這個例子中添加端口)

你可以看到一個工作示例here