You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何手动模拟nodemon自动重启Node.js服务器?或配置restart命令

如何手动重启你的nodemon+Babel Node.js服务器

方法1:使用nodemon内置的手动重启命令(最简单)

nodemon本身就自带了手动触发重启的功能,效果和文件变化触发的自动重启完全一致。你只需要在运行nodemon的终端窗口里,输入rs然后按下回车键——马上就能看到和自动重启一模一样的输出:

[nodemon] restarting due to changes...
[nodemon] starting babel-node --max-old-space=8192 ./src/app.js

这个方法不需要修改任何配置,是官方推荐的最便捷的手动重启方式。

方法2:在package.json中添加restart脚本

如果你想通过npm run restart命令来模拟自动重启的行为,核心思路是先终止当前运行的nodemon进程,再重新启动你的start命令。下面是针对不同系统的配置方案:

适用于Linux/macOS的脚本

在package.json的scripts字段中添加:

"scripts": {
  "start": "nodemon --max-old-space=8192 ./src/app.js --exec babel-node",
  "restart": "pkill -f 'nodemon.*babel-node' && npm run start"
}
  • pkill -f 'nodemon.*babel-node'会精准匹配并终止所有包含nodemon和babel-node的进程,确保旧服务器完全停止。
  • 后续的npm run start会重新启动服务器,执行逻辑和自动重启完全一致。

适用于Windows的脚本

Windows需要使用taskkill命令,修改为:

"scripts": {
  "start": "nodemon --max-old-space=8192 ./src/app.js --exec babel-node",
  "restart": "taskkill /F /IM nodemon.exe && npm run start"
}
  • /F参数用于强制终止进程,/IM nodemon.exe指定要终止的目标进程名。

跨平台兼容方案(可选)

如果需要兼顾不同操作系统,可以借助tree-kill工具配合PID文件实现:

  1. 先安装依赖:
npm install --save-dev tree-kill
  1. 配置脚本,让nodemon启动时生成PID文件:
"scripts": {
  "start": "nodemon --max-old-space=8192 ./src/app.js --exec babel-node --pidfile ./nodemon.pid",
  "restart": "tree-kill $(cat ./nodemon.pid) && npm run start"
}

这里通过--pidfile ./nodemon.pid让nodemon把自身进程ID写入文件,重启时读取这个PID并终止旧进程,再重新启动服务,跨平台兼容性更好。

补充说明

你看到的自动重启输出[nodemon] starting babel-node --max-old-space=8192 ./src/app.js,是因为nodemon会把你传入的--max-old-space=8192参数自动传递给--exec指定的babel-node(毕竟babel-node`是Node.js的封装,会接收Node的参数)。上面的两种方法都会完整复现这个执行逻辑,和自动重启的效果完全一致。

内容的提问来源于stack exchange,提问作者KasparTr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:39:45