17

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

$ node --debug src/file.js

我也可以像这样通过咖啡脚本二进制文件传递该参数

$ coffee --nodejs --debug src/file.coffee

哪个有效。但是当我涉及到主管时,事情变得更加困难。运行咖啡脚本没问题:

$ supervisor -w src src/file.coffee

但我想调试与supervisor一起运行的咖啡脚本。如何发送参数,例如--debug通过supervisor?我尝试将可执行文件设置为带有如下参数的字符串:

$ supervisor -w src -x "coffee --nodejs --debug" src/server.coffee

这产生了一个无限重复的错误消息说

调试:使用 'coffee --nodejs --debug src/server.coffee' 启动子进程
调试:execvp():没有这样的文件或目录

这很奇怪,因为coffee --nodejs --debug src/server.coffee在终端中运行是有效的。

那么如何通过主管发送参数?


编辑:我想扩展我的问题,提到我现在也尝试过使用nodemon。似乎nodemon被认为比node-supervisor更可取,所以我会接受任何解释在通过nodemon--debug启动咖啡脚本时如何传递给节点进程的


编辑:这是nodemon的输出。显然,参数没有以相同的顺序传递:-(

$ nodemon -w src -x 咖啡 --nodejs --debug src/server.coffee
1 月 15 日 03:41:56 - [nodemon] v0.6.5
1 月 15 日 03:41:56 - [nodemon] 观看:/foo/bar/server/src
1 月 15 日 03:41:56 - [nodemon] 正在运行 --debug
1 月 15 日 03:41:56 - [nodemon] 开始`coffee --debug --nodejs src/server.coffee`

节点.js:201
        扔 e; // process.nextTick 错误,或第一次滴答时的 'error' 事件
              ^

错误:无法识别的选项:--debug
4

4 回答 4

12

实际上,它原来是一个错误:)

捷径:

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 上)

于 2012-01-16T20:09:19.783 回答
11

您可以--与主管一起使用。不确定这是否适用于-x语法:

supervisor -w src -- coffee.js --nodejs --debug src/server.coffee

于 2012-12-05T12:55:00.017 回答
0

从对主管的快速回顾来看,它似乎将所有参数作为参数传递给脚本本身,因此您需要使用 nodemon。

Nodemon 挑选出它自己的参数,否则它们会被传递给节点。在当前版本中,js/coffee 文件之后的参数被保留,js 文件之前的参数顺序颠倒,所以试试这个。

nodemon -w src -x coffee --debug --nodejs src/server.coffee

当然,看起来你也注意到了:P https://github.com/remy/nodemon/issues/54

所以,是的,订购问题是一个希望得到修复的错误。

于 2012-01-15T02:35:18.330 回答
0

事实证明,问题在于参数只是以相反的顺序传递。以下作品

$ nodemon --debug --nodejs -w src -x coffee src/server.coffee

我也解决了这个问题,并在 github上向作者发送了pull request

于 2012-01-15T04:10:45.067 回答