Nodemon:在崩溃时自动重启 Node.js 应用程序

大量开发人员在 Node.js 应用程序的开发和测试过程中使用 Nodemon。当你的代码文件发生变化时,Nodemon 会自动重启程序。但是,当应用程序崩溃时,它将停止:

nodemon app crashed - waiting for file changes before starting

这是一种刻意的行为,旨在帮助您有时间阅读错误消息并弄清楚发生了什么。如果 Nodemon 在这种情况下自行重新启动您的 Node.js 应用程序,您很可能会陷入无休止的错误循环,并且您的控制台将充斥着重复的消息。如果您意识到这一点并且确实希望 Nodemon 在崩溃时自动重新启动您的 Node.js 程序,那么有一个简单的解决方案适合您。

对于 Mac 和 Linux,使用以下命令:

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

如果您使用的是 Windows 笔记本电脑,请使用这个:

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

如果您的入口文件不是名为 index.js 而是 app.js、server.js 或其他任何名称,则相应地更改命令。

替代解决方案

如果您已经使用 Node.js 一段时间,那么您很可能会了解pm2,它是生产中 Node.js 的流行进程管理器。但是,pm2 仍然可以用于开发目的,并且性能非常好。

安装pm2

npm i --g pm2

或者:

sudo npm i --g pm2

然后您可以运行您的应用程序并观察文件更改,如下所示:

pm2 start index.js --watch