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

Node.js应用部署Heroku失败 本地运行正常该如何排查解决?

问题排查与解决方案
  • 校验入口文件路径与大小写
    先确认package.json中scripts.start字段配置的node server.js路径和实际文件路径完全一致,本地Windows/macOS环境默认对文件名大小写不敏感,而Heroku使用的Linux环境大小写敏感,如果实际文件名为Server.js和配置的server.js大小写不匹配,会直接导致启动失败。
  • 排查依赖声明问题
    本地已安装依赖不代表所有运行时依赖都写入了dependencies字段,若有依赖被误写入devDependencies,Heroku默认部署时不会安装这部分依赖,会导致运行时报错。你可以本地执行npm ci --only=production模拟Heroku的生产环境安装流程,再执行启动脚本,就能快速验证是否为依赖缺失问题。
  • 修正端口监听配置
    不要在server.js中写死监听端口,Heroku会通过环境变量process.env.PORT动态分配端口,写死端口会导致进程无法正常绑定端口被判定启动失败,正确写法参考:
    app.listen(process.env.PORT || 3000, () => {
      console.log('服务启动成功')
    })
    
  • 查看完整运行日志定位具体错误
    当前日志仅显示启动脚本执行失败,未输出代码运行时的具体报错,执行heroku logs --tail命令可以查看实时完整日志,直接定位到具体报错的代码位置。
  • 匹配Node.js版本
    可在package.json中添加engines字段声明本地使用的Node.js和npm版本,避免Heroku默认使用的版本和本地版本不一致导致兼容问题,示例配置:
    {
      "engines": {
        "node": "16.x",
        "npm": "8.x"
      }
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 01:15:04