Kinda Code
Home/Node/Nodemon: Automatically Restart a Node.js App on Crash

Nodemon: Automatically Restart a Node.js App on Crash

Last updated: September 13, 2022

A large number of developers use Nodemon during the development and testing of Node.js apps. When your code file changes, Nodemon will automatically restart the program. However, when the app crashes, it will stop:

nodemon app crashed - waiting for file changes before starting

This is a deliberate behavior that intends to help you have time to read error messages and figure out what is going on. If Nodemon restarts your Node.js app on its own in this situation, chances are you’ll go into an endless loop of errors and your console will be flooded with duplicate messages. If you are aware of this and surely want Nodemon to automatically restart your Node.js program on a crash, then there is a simple solution for you.

For Mac and Linux, use the following command:

nodemon -x 'node index.js || touch index.js'

If you’re working with a Windows laptop, use this one:

nodemon -x 'node index.js || copy /b index.js +,,'

if your entry file is not named index.js but app.js, server.js, or anything else then change the command accordingly.

Alternative Solution

If you’ve worked with Node.js for a while then you’re very likely to know about pm2, a popular process manager for Node.js in production. However, pm2 can still be used for development purposes and it performs very well.

Install pm2:

npm i --g pm2

Or:

sudo npm i --g pm2

Then you can run your app and watch for file changes like so:

pm2 start index.js --watch

Further reading:

You can also check out our Node.js category page for the latest tutorials and examples.