一尘不染

如何在Node.js中以编程方式检测调试模式?

node.js

我已经看到这个问题问过其他平台/语言-有什么想法吗?我想做类似的事情:

if (detectDebug())
{
    require('tty').setRawMode(true);    
    var stdin = process.openStdin();

    stdin.on('keypress', function (chunk, key) {
        DoWork();
    }
}
else
{
    DoWork();
}

我希望能够在调试时切换键盘输入作为脚本的开始,这样我就可以花点时间启动chrome来监听我的节点检查器端口。

***快速更新-我猜我实际上可以使用“ process.argv”来检测–debug是否传入。这是最佳/正确的方法吗?


阅读 210

收藏
2020-07-07

共1个答案

一尘不染

v8debug在调试模式下运行时,NodeJS创建一个全局对象:node debug script.js

因此,可能的解决方案是:

var debug = typeof v8debug === 'object';

对于我的用例,我使用它是因为我想避免传递环境变量。我的主节点进程启动了子节点进程,并且我也希望为子节点node debug mainScript.js触发调试模式(再次,不将env变量传递给子进程)

2020-07-07