Debugging 将NodeJs应用程序从内部切换到调试模式';s过程
我有一个NodeJs模块“some module”,我想全局安装它,这样它就可以直接从命令行运行,而不需要节点可执行前缀。ie: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
$>某些模块[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
它将在调试器中停止(注意:这与节点检查器不同,我不知道是否可以通过节点检查器实现)
我真的不明白你这么做的原因,但希望这能有所帮助。你有没有找到解决办法?