Heroku部署MERN栈电商项目触发H10错误App crashed如何解决
Heroku部署MERN项目H10报错修复方案
问题根因
从你提供的heroku logs --tail日志可以定位到核心错误:Error: Cannot find module 'nodemon',H10的App crashed提示是服务启动时缺失依赖、进程异常退出触发的。nodemon是本地开发用的热重载工具,不应该在生产环境的业务代码中被引用。
修复步骤
- 打开项目中的
backend/models/userModel.js文件,删除第4行误写的require('nodemon')导入语句,用户模型业务逻辑完全不需要引入nodemon,属于开发过程中误加的代码。 - 检查项目根目录的
package.json配置:确认nodemon仅存放在devDependencies节点下,不要放到生产依赖的dependencies节点中,Heroku部署默认只安装dependencies下的依赖包,不会安装开发依赖。 - 确认
package.json中的启动脚本配置,生产启动命令使用node backend/server.js即可,不要用nodemon启动,你当前Heroku的启动命令已经符合要求,无需修改。 - 上述修改完成后重新提交代码,再部署到Heroku即可解决崩溃问题。
注意事项
- 生产环境不要使用nodemon启动服务,nodemon仅用于本地开发阶段自动重启服务,生产环境使用原生node启动性能更高、稳定性更好。
- 后续遇到Heroku H10报错优先执行
heroku logs --tail查看具体运行日志,绝大多数H10报错都是代码运行错误导致进程主动退出触发的。
内容的提问来源于stack exchange,提问作者Roopesh Saravanan
相关产品推荐
相关产品推荐

