【问题标题】:How can I get --debug and "watch" to coexist nicely?我怎样才能让 --debug 和“watch”很好地共存?
【发布时间】:2017-05-20 07:31:18
【问题描述】:

我意识到有很多相关的问题。我发现没有一个可以解决这个问题。

我希望在我的代码更改时使用--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;操作系统;重击

【问题讨论】:

    标签: node.js debugging port watch


    【解决方案1】:

    似乎解决方案是删除watch 并改用nodemon

    package.json:

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

    效果很好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-19
      • 1970-01-01
      • 1970-01-01
      • 2023-03-18
      • 2011-02-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多