当我使用以下命令运行nodejs服务器时:
"start": "nodemon --max-old-space=8192 ./src/app.js --exec babel-node"
我更改了代码中的任何内容,nodemon自动重新加载代码并使用以下消息重新启动服务器。
[nodemon] restarting due to changes...
[nodemon] starting `babel-node --max-old-space=8192 ./src/app.js`
如何以相同方式手动重启服务器?
或者换句话说:我在package.json脚本“restart”命令中写什么来模拟nodemon自动完成的相同行为?
由于
答案 0 :(得分:2)
如documentation中所述,您可以通过在rs
正在运行的控制台中键入nodemon
来手动重新启动。
没有外部命令可以从其他进程触发重启
一种解决方法是通过模拟文件的更改来触发重启
观看文件上的简单touch
就足够了。所以你可以编写一个触及其中一个监视文件的npm脚本。
"restart": "touch app.js"
答案 1 :(得分:2)
nodemon
的目的是监听文件的更改并重新启动服务器。如果您想手动重启服务器,那么您不需要使用nodemon,只需使用node
命令。
以下代码可用于此目的。
{
"scripts": {
"start": "node ./src/app.js",
"restart": "kill -9 $(ps aux | grep '\snode\s' | awk '{print $2}') && node ./src/app.js "
},
}
答案 2 :(得分:0)
如果过一阵子您特别想解决“听EADDRINUSE:地址已在使用中” 错误,则可以检查哪个应用程序正在使用nodemon想要使用的端口:
sudo lsof -i :4500
以上内容将为您提供使用该端口的应用程序的PID。然后,您可以通过以下方式终止该过程:
kill -9 <PID>
答案 3 :(得分:0)
来源:https://www.npmjs.com/package/nodemon
手动重启
nodemon在运行时,如果您需要手动重新启动 应用程序,而不是停止并重新启动nodemon,您可以键入 rs 带有回车符,nodemon将重新启动您的进程。