Heroku平台Node.js应用启动失败求助(附报错日志)
Heroku部署Node.js应用启动失败排查方案
首先先看下你提供的启动错误日志:
2018-03-20T11:45:03.569723+00:00 app[web.1]: npm ERR! Exit status 1
2018-03-20T11:45:03.569953+00:00 app[web.1]: npm ERR!
2018-03-20T11:45:03.570261+00:00 app[web.1]: npm ERR! 这大概率不是npm的问题,上方可能有更多日志输出。
2018-03-20T11:45:03.570109+00:00 app[web.1]: npm ERR! webtech_team1@1.0.0的start脚本执行失败。
2018-03-20T11:45:03.575871+00:00 app[web.1]:
2018-03-20T11:45:03.576049+00:00 app[web.1]: npm ERR! 完整的...
从日志能看出来,核心问题是你的start脚本执行失败了,npm也提示真正的错误原因藏在更前面的日志里,下面给你几个具体的排查步骤:
- 先获取完整启动日志:你现在看到的只是日志末尾片段,建议在本地终端执行
heroku logs --tail命令,实时查看应用启动的完整流程,找到触发start脚本失败的具体诱因(比如代码语法报错、依赖缺失、端口配置错误等)。 - 检查package.json的start脚本配置:打开你的
package.json文件,确认scripts里的start字段是不是指向了正确的入口文件,比如是不是写成了"start": "node server.js",要保证这个入口文件确实存在,路径也没有写错。 - 本地先验证启动是否正常:在本地项目目录下执行
npm start,看看能不能正常运行。如果本地也报错,那先把本地的问题解决掉(比如修复代码bug、安装缺失依赖),再重新部署到Heroku。 - 核对Heroku的环境变量配置:很多Node.js应用依赖环境变量(比如数据库连接串、端口号),要确保你在Heroku的应用设置里已经正确配置了这些变量,而且代码里是通过
process.env.XXX来读取的——别硬编码端口号,Heroku会自动分配端口,必须用process.env.PORT。 - 重新安装依赖后部署:有时候部署时依赖安装不完整,你可以先删除本地的
node_modules文件夹和package-lock.json文件,执行npm install重新安装依赖,再把更新后的代码提交到Heroku重新部署。
内容的提问来源于stack exchange,提问作者user9496244
相关产品推荐
相关产品推荐

