节点可以使用像这样的调试参数运行
$ node --debug src/file.js
我也可以通过像这样的咖啡脚本二进制文件传递该参数
$ coffee --nodejs --debug src/file.coffee
哪个有效。但是当我涉及supervisor时,事情变得更加困难。运行咖啡脚本没问题:
$ supervisor -w src src/file.coffee
但我想调试我使用supervisor运行的咖啡脚本。如何通过supervisor发送--debug
等参数?我尝试将可执行文件设置为带有如下参数的字符串:
$ supervisor -w src -x "coffee --nodejs --debug" src/server.coffee
这产生了无限重复的错误消息
DEBUG: Starting child process with 'coffee --nodejs --debug src/server.coffee' DEBUG: execvp(): No such file or directory
这很奇怪,因为在终端中运行coffee --nodejs --debug src/server.coffee
。
那么如何通过supervisor发送参数?
编辑: 我想提及我现在尝试使用nodemon来扩展我的问题。似乎nodemon被认为比node-supervisor更受欢迎,所以我会接受任何解释,说明在通过nodemon启动咖啡脚本时如何将--debug
传递给节点进程
编辑: 以下是nodemon的输出。显然,参数不会以相同的顺序传递: - (
$ nodemon -w src -x coffee --nodejs --debug src/server.coffee 15 Jan 03:41:56 - [nodemon] v0.6.5 15 Jan 03:41:56 - [nodemon] watching: /foo/bar/server/src 15 Jan 03:41:56 - [nodemon] running --debug 15 Jan 03:41:56 - [nodemon] starting `coffee --debug --nodejs src/server.coffee` node.js:201 throw e; // process.nextTick error, or 'error' event on first tick ^ Error: unrecognized option: --debug
答案 0 :(得分:7)
您可以将--
与主管一起使用。不确定这是否适用于-x
语法:
supervisor -w src -- coffee.js --nodejs --debug src/server.coffee
答案 1 :(得分:6)
实际上,结果证明是一个错误:)
简短的方法:
nodemon --debug -w src src/server.coffee
或(其中--nodejs和--debug包含在exec中)
nodemon -x "coffee --nodejs --debug" -w src src/server.coffee
或(看起来比上面好)
nodemon -x coffee --nodejs --debug -w src src/server.coffee
(全部在nodemon 0.6.6上)
答案 2 :(得分:0)
通过对主管的快速回顾,看起来它将所有参数作为参数传递给脚本本身,因此您将需要使用nodemon。
Nodemon选择它自己的参数,否则它们会被传递给节点。在当前版本中,保留了js / coffee文件之后的参数,并且JS文件之前的参数的顺序被反转,所以试试这个。
nodemon -w src -x coffee --debug --nodejs src/server.coffee
当然,看起来你也注意到了:P https://github.com/remy/nodemon/issues/54
所以是的,订购问题是一个有希望得到解决的错误。
答案 3 :(得分:0)
事实证明问题是参数只是以相反的顺序传递。以下作品
$ nodemon --debug --nodejs -w src -x coffee src/server.coffee
我也解决了问题,并在github上向pull request发送了the author