如何将参数传递给nodemon(或node-supervisor)中的可执行文件?

时间:2012-01-14 23:31:48

标签: node.js debugging coffeescript supervisor nodemon

节点可以使用像这样的调试参数运行

$ 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

4 个答案:

答案 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