Ich weiß, dass es viele verwandte Fragen dazu gibt. Keine, die ich gefunden habe, adressieren diese Frage.Wie bekomme ich --debug und "watch", um gut zu koexistieren?
Ich möchte, dass mein Prozess mit --debug
neu startet, wenn sich mein Code ändert. Zwei Befehle in meinem 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",
OK jene Arbeit gut von selbst und funktionieren ohne --debug
, aber zusammen die --debug
wird ein EADDRINUSE Fehler verursachen:
Error: listen EADDRINUSE :::5858
Erhöhung der Zeit bis 4 Sekunden habe es nicht gemacht. Es funktioniert gut, wenn ich Ctrl-C und kill die Uhr und Neustart, aber das den Zweck verfehlt. Gibt es eine Möglichkeit, den Debugger-Port programmatisch freizugeben, bevor der Prozess neu gestartet wird, ohne alle meine Knotenprozesse zu löschen?
Mein bester Stich an dieser so weit: eine dumme env Variable hinzufügen (ID=9877876
oder FINDME=alksdjflaksjdfl
) an den Startbefehl und dann verwenden, um den Prozess später zu finden und töten vor dem Neustart:
"watch": "watch 'kill $(ps a | grep [ID]=9877876 | cut -d \" \" -f 1) && npm run debug-no-inspect' ./src -d"
dies jedoch funktioniert nicht. Der Befehl funktioniert für sich, aber nicht mit watch
. Ist eine andere Bibliothek eine bessere Wahl?
Knoten 6; OSX; bash