Heroku构建成功但应用触发H10崩溃错误,寻求解决方案
Heroku部署React/Redux应用出现H10(App crashed)错误排查方案
首先,H10错误说明你的应用在启动阶段崩溃了——虽然构建流程显示成功,但实际运行时出了问题。下面是几个实用的排查方向和解决方法:
1. 确认启动脚本与端口配置是否正确
- 先检查
package.json里的start脚本:如果是Create React App创建的项目,脚本应该是这样的:
要是用了自定义Express服务器,"scripts": { "start": "react-scripts start", "build": "react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject" }start脚本得指向你的服务器入口文件,比如"start": "node server.js"。 - Heroku会自动分配端口,绝对不能硬编码端口号!要使用环境变量
process.env.PORT,比如在Express服务器中:const port = process.env.PORT || 3000; app.listen(port, () => { console.log(`Server running on port ${port}`); });
2. 查看完整的应用启动日志
你提供的只是构建阶段的日志,崩溃的关键原因往往藏在启动日志里。执行这条命令获取实时日志:
heroku logs --tail
重新启动应用后,就能看到启动时的具体错误信息——比如模块缺失、语法错误、环境变量未配置等,这一步通常能直接定位问题。
3. 检查生产依赖是否完整
有些依赖如果被放在devDependencies里,Heroku在生产环境会忽略它们。如果你的启动脚本需要某些依赖(比如express),一定要确保它们在dependencies列表中。
4. 本地验证生产构建是否正常
先在本地执行构建命令,再尝试启动生产环境应用,看看是不是代码本身的问题:
npm run build serve -s build # 没装serve的话先执行:npm install -g serve
如果本地也启动失败,那问题和Heroku无关,先在本地修复代码或配置。
5. 确认环境变量配置正确
如果应用依赖环境变量(比如API地址、密钥),要确保在Heroku里配置好了:
heroku config:set REACT_APP_API_URL=https://your-api-address.com
注意React应用的环境变量必须以REACT_APP_开头才能被正确识别。
6. 清理缓存后重新部署
有时候缓存会导致奇怪的问题,试试清除Heroku缓存后重新部署:
heroku plugins:install heroku-repo heroku repo:purge_cache -a desolate-river-47144 git commit --allow-empty -m "Purge cache" git push heroku main
先按上面的步骤排查,重点看启动日志,大概率能找到崩溃原因。如果还有问题,可以把启动阶段的错误日志贴出来,我再帮你分析。
内容的提问来源于stack exchange,提问作者user6275251
相关产品推荐
相关产品推荐

