Nodemon检测到代码变更后卡在重启状态无法重启服务,如何解决?
问题原因
导致nodemon卡在RESTARTING DUE TO CHANGES提示不实际重启的常见原因如下:
- 代码存在语法错误,导致服务重启时启动失败,无后续日志输出
- 当前使用的nodemon 2.0.12版本存在已知的文件监听故障,会出现重启卡住的问题
- 旧服务进程未正常退出,占用3000端口,新启动的进程无法绑定端口
- 运行环境的文件系统监听权限不足,nodemon无法正确触发重启流程
- express路由路径配置错误,导致服务启动时报错中断
解决步骤
修正代码语法错误
你提供的index.js中路由路径写法不符合express规范,将app.get('./help', (req, res) => {修改为app.get('/help', (req, res) => {即可,路由路径不需要加./相对路径前缀。更换nodemon版本
执行以下命令升级到最新稳定版nodemon:npm install nodemon@latest -D
如果升级后仍有问题,可以降级到稳定的2.0.7版本:npm install nodemon@2.0.7 -D释放被占用的端口
- Windows系统:执行
netstat -ano | findstr "3000"找到占用3000端口的进程PID,再执行taskkill /f /t /im 你的进程PID杀掉进程 - Mac/Linux系统:执行
lsof -i:3000 | grep LISTEN | awk '{print $2}' | xargs kill -9直接释放3000端口
- 增加nodemon适配配置
如果是在共享文件夹、虚拟机等特殊环境下运行,可以修改package.json中的start脚本为:"start": "nodemon --legacy-watch index.js"
也可以在项目根目录新建nodemon.json配置文件,写入以下内容明确监听规则:
{ "watch": ["*.js"], "ext": "js,json", "ignore": ["node_modules"], "exec": "node index.js" }
内容的提问来源于stack exchange,提问作者Sharjeel Faiq
相关产品推荐
相关产品推荐

