我正在使用supervisor自动重新加载我的node.js,例如,运行node.js应用程序与监督程序调试
supervisor -w . app.js
但是,我不能找出如何让监督员在调试中运行node.js过程,例如,相当于
node --debug app.coffee
任何人有什么想法?
我正在使用supervisor自动重新加载我的node.js,例如,运行node.js应用程序与监督程序调试
supervisor -w . app.js
但是,我不能找出如何让监督员在调试中运行node.js过程,例如,相当于
node --debug app.coffee
任何人有什么想法?
该解决方案将在* nix工作:
转到/usr/local/bin
或在您的$ PATH任何其他目录
$ cd /usr/local/bin
创建可执行脚本(比如,节点调试)包含以下内容
#!/bin/bash
node --debug [email protected]
为了使其可执行:
$ sudo chmod 777 /usr/local/bin/node-debug
现在你可以这样运行了主管:
$ supervisor -x node-debug script.js
附::为了圆起来:
su
echo '#!/bin/bash
node --debug [email protected]' > /usr/local/bin/node-debug
chmod 777 /usr/local/bin/node-debug
这样我得到'调试器在端口5858上侦听无法在端口5858上打开套接字,在重试之前等待1000毫秒,而手动'节点--debug'工作正常。 – Redsandro
使用-x
标志的node-supervisor
github page
supervisor -w . -x 'node --debug' app.js
作为证明,但不会与CoffeeScript的工作,所以你必须使用
supervisor -w . -x 'coffee --debug' app.js
尝试过,但与DEBUG进入无限循环:用'coffee --debug app.coffee'开始子进程DEBUG:execvp():没有这样的文件或目录 –
@JamesHollingworth我认为'咖啡--debug'只能工作太多了:P – Raynos
“所有参数都传递给子进程。节点开发--debug server.js将调试应用程序,而不是监督者本身。”
创建 “test.js” 的Node.js脚本$ HOME/nodetest
第一终端(运行在调试模式下的节点,调试将要监听的端口5858上,节点开发会重新修改过的文件):
cd $HOME/nodetest
npm install node-dev
node_modules/.bin/node-dev --debug test.js
第二终端(启动网络检查器基于WebKit的浏览器,检查连接到调试器的端口5858并听取端口8080):
cd $HOME/nodetest
npm install node-inspector
node_modules/.bin/node-inspector
打开这个网址的基于WebKit的浏览器(Chrome,Safari等):
http://0.0.0.0:8080/debug?port=5858
点击 “脚本”,并设置在代码中的断点。
这也适用于(而且你并不需要一个单独的bash脚本):
supervisor -- --debug app.js
supervisor -- --debug=7070 app.js
这个应该是被接受的答案。感谢你的分享。 –
是的,它的工作原理如此简单,也适用于“高级”检测器,例如用于运行Express:'DEBUG = myapp:* supervisor - --inspect bin/www'。我遇到了尝试使用-x参数的事件错误,但是这种替代参数格式可以工作。 – scipilot
--nodejs的node可执行文件提供了一些有用的选项,例如 --debug,--debug-brk和--max-stack-size。使用此标志将选项直接转发到Node.js.
我想这和它的工作:
主管 - --nodejs --debug app.coffee
您可以添加这样的其他参数:
主管-w。 -n错误 - --nodejs --debug app.coffee
主管链接断开。网页显示“Posterous Spaces is already available” –