Debugging 将NodeJs应用程序从内部切换到调试模式';s过程

Debugging 将NodeJs应用程序从内部切换到调试模式';s过程,debugging,node.js,Debugging,Node.js,我有一个NodeJs模块“some module”,我想全局安装它,这样它就可以直接从命令行运行,而不需要节点可执行前缀。ie:$>某些模块[args]我希望其中一个参数是--debug。原因是我不想要求此模块的用户将其安装到本地目录,而只是为了运行节点--debug brk node\u modules/some module/[path to entry point][args] NodeJs文档在其关于调试的高级用法部分() 可以通过使用--debug命令行标志启动Node.js或使用SI

我有一个NodeJs模块“some module”,我想全局安装它,这样它就可以直接从命令行运行,而不需要节点可执行前缀。ie:
$>某些模块[args]
我希望其中一个参数是
--debug
。原因是我不想要求此模块的用户将其安装到本地目录,而只是为了运行
节点--debug brk node\u modules/some module/[path to entry point][args]

NodeJs文档在其关于调试的高级用法部分()

可以通过使用
--debug
命令行标志启动Node.js或使用
SIGUSR1
向现有Node.js进程发送信号来启用和访问V8调试器

我试着这样做:

process.kill(process.pid, 'SIGUSR1');
产生错误的原因:

node.js:201
        throw e; // process.nextTick error, or 'error' event on first tick
              ^
Error: Unknown signal: SIGUSR1
    at EventEmitter.kill (node.js:366:17)
    at Object.<anonymous> (c:\dev\some-module\app.js:94:17)
    at Module._compile (module.js:441:26)
    at Object..js (module.js:459:10)
    at Module.load (module.js:348:31)
    at Function._load (module.js:308:12)
    at Array.0 (module.js:479:10)
    at EventEmitter._tickCallback (node.js:192:40)
node.js:201
抛出e;//process.nextTick错误,或第一次勾选时的“error”事件
^
错误:未知信号:SIGUSR1
在EventEmitter.kill(node.js:366:17)
反对。(c:\dev\some module\app.js:94:17)
在模块处编译(Module.js:441:26)
at Object..js(module.js:459:10)
在Module.load(Module.js:348:31)
at功能。加载(module.js:308:12)
at Array.0(module.js:479:10)
在EventEmitter上进行回调(node.js:192:40)
我需要做什么才能使正在运行的进程切换到调试模式


另外,我想用node inspector调试给定的应用程序。

我不太确定是否理解您的问题,但是

您可能可以全局安装应用程序,并使用npm将其停止在断点处。在
package.json
put中:

...
"scripts": {"start": "node --debug-brk some-module.js"},
"bin" : { "some-module" : "./some-module.js" },
...
运行
npm start-g某些模块将在第一行中断。
然后可以使用节点检查器进行调试

关于从代码中停止的部分,node有一个内置调试器(这是非常基本的),但它允许此功能。 如果代码中包含以下内容:

debugger;
并运行:

node debug some-module.js 
它将在调试器中停止(注意:这与节点检查器不同,我不知道是否可以通过节点检查器实现)


我真的不明白你这么做的原因,但希望这能有所帮助。

你有没有找到解决办法?