Starting with recent versions of Node.js (v18.11+ and especially v22+).

You can use the built-in watch mode instead of installing nodemon for many development workflows.

Instead of: nodemon server.js
You can simply run: node --watch server.js
Or,

 in your package.json:
{
  "scripts": {
    "dev": "node --watch server.js",
    "start": "node server.js"
  }
}

Then start your development server with:
npm run dev

Benefits of node --watch: 
✅ No extra dependency to install.
✅ Automatically restarts your application when files change.
✅ Built directly into Node.js.


When nodemon is still useful:
Nodemon still offers features that the built-in watcher doesn't, such as:
✅ Watching specific directories or file extensions.
✅ Running custom commands before restart.
✅ More advanced configuration via nodemon.json.
✅ Better support for some complex development setups.

For most Express.js projects, though, node --watch is sufficient and is becoming the preferred approach if you're using a modern Node.js version.