M-Zuber/npm-watch

npm-watch does not stop the last server before running the updated one

mlarabi opened this issue · 5 comments

I first thought that it was a nodemon issue but it seems that it is not the case.
Basically when the server restart, the port is still used by the last running server.

Here is a repository so you can reproduce the error: https://github.com/mlarabi/nodemon-restart-issue

index.js.-.nodemon-restart-issue.-.Visual.Studio.Code.2021-07-12.05-01-24.mp4

It does not seem to be a nodemon issue because when I use nodemon directly to the entry point, it works fine.

index.js.-.nodemon-restart-issue.-.Visual.Studio.Code.2021-07-12.05-15-15.mp4

I got same problem, can we somehow kill previous process before running new one?

@abahrisd I use kill-port for now until the bug is fixed.
Just before running the server I wrote killPort(3000, 'tcp').then(() => server.listen(3000, () => console.log("hello world"))).
Be careful into not sending this code in prod.

When you used nodemon directly was it the same version that npm-watch was using?

No it's a more recent one. The latest probably as I always upgrade my packages when I can.

Hi all,
i hadthe same problem with my node red server. I want to restart it after every change. Thx to @mlarabi i could find a valid solution for me:

  • Installed kill-port and npm-watch as devDependencies
 "devDependencies": {
    "kill-port": "^1.6.1",
    "npm-watch": "^0.11.0"
  }
  • Added following config:
  "watch": {
      "watch.dev": "{nodes,dist}/*.js"
    },
  "scripts": {
    "watch.dev": "kill-port 1880 && node-red",
    "watch": "npm-watch"
  },