2017-01-05 64 views
0

我意识到这里有很多相关的问题。我没有发现解决这个问题。我怎样才能让--debug和“watch”很好地共存?

我希望我的程序在--debug的代码更改时重新启动。在我的package.json两个命令:

"debug-no-inspect": "API_PORT=5566 API_LOGLEVEL=DEBUG node --debug dist/index.js | bunyan -o short", 
"watch": "watch 'npm run debug-no-inspect' ./src -d --wait=1", 

确定这些工作很好地通过自己和不--debug做工精细,但在一起--debug将导致EADDRINUSE错误:

Error: listen EADDRINUSE :::5858 

增加时间为4秒没有做到。它工作正常,如果我Ctrl-C并杀死手表并重新启动,但失败的目的。有没有一种方法可以在重新启动进程之前以编程方式释放调试器端口,而不会终止所有节点进程?

在这个到目前为止我最好的刺:一个愚蠢的环境变量(ID=9877876FINDME=alksdjflaksjdfl)添加到启动命令,然后用它后来发现过程并重新启动之前杀死它:

"watch": "watch 'kill $(ps a | grep [ID]=9877876 | cut -d \" \" -f 1) && npm run debug-no-inspect' ./src -d" 

然而,这不起作用。该命令独立工作,但不适用于watch。另一个图书馆是更好的选择吗?

节点6; OSX;庆典

回答

0

看来,解决办法是删除watch和使用nodemon代替:

的package.json:

"watch": "nodemon -V -w config -w src -e coffee,yaml,properties --exec npm -- run debug", 

作品好了。