Node.js应用本地可正常运行但Heroku部署失败,如何排查解决?
Heroku 应用启动失败排查指引
- 检查
package.json脚本配置:确认scripts字段下存在正确的start命令,Heroku 默认执行npm start启动应用,本地自定义启动命令未同步到start配置会直接启动失败。 - 检查端口配置:禁止硬编码服务监听端口,必须优先读取 Heroku 注入的环境变量
PORT,参考写法:const port = process.env.PORT || 本地开发端口,硬写固定端口会导致 Heroku 流量无法正常转发,触发启动超时错误。 - 检查依赖配置:所有运行时需要的依赖必须写入
package.json的dependencies字段,不要存放到devDependencies中,Heroku 部署默认不安装开发依赖,本地安装过全量依赖运行正常,部署后缺失对应包就会报错。 - 检查环境变量配置:本地用到的所有运行时环境变量(比如数据库连接地址、加密密钥、第三方服务 token 等),都需要在 Heroku 控制台的配置变量页完整录入,缺失环境变量会导致服务初始化失败。
- 检查构建流程配置:如果项目需要预构建(比如前端项目打包、TS 项目编译等),确认
package.json下配置了正确的build脚本,Heroku 部署阶段会自动执行npm run build,缺失构建步骤会导致运行时所需文件不存在。 - 本地查看实时日志:安装 Heroku CLI 后执行
heroku logs --tail --app 你的应用名命令,可以查看实时运行日志,准确定位具体报错代码位置。
内容的提问来源于stack exchange,提问作者Jack
相关产品推荐
相关产品推荐

