React+Node.js项目部署Heroku启动报错 出现H10应用崩溃问题求助
Heroku部署React应用H10崩溃排查方案
当前日志仅显示npm启动异常退出、应用触发H10崩溃错误,完整npm报错存储在服务端日志文件中,可按以下步骤逐一排查:
- 检查package.json启动脚本配置:确保
scripts字段下的start命令指向正确的生产环境启动入口。如果是静态React项目,不要直接使用react-scripts start作为生产启动命令,Heroku生产环境默认不会安装devDependencies下的react-scripts依赖,建议使用serve包托管build产物,start命令配置为serve -s build。 - 核对依赖分类:确认所有生产环境需要的依赖都放置在
dependencies字段,而非devDependencies,Heroku默认部署流程不安装devDependencies中的包,如有需要可配置环境变量NPM_CONFIG_PRODUCTION=false。 - 检查Procfile配置正确性:web进程启动命令需和package.json中的启动命令匹配,标准格式为
web: npm start,注意不要有拼写错误、多余的空格或换行。 - 校验端口绑定逻辑:如果使用自定义Node服务托管React资源,不要硬编码端口号,必须通过
process.env.PORT读取Heroku平台分配的端口,硬编码端口会导致服务无法被平台健康检测机制识别,触发强制崩溃。 - 本地复现生产启动流程:本地先执行
npm run build,再执行配置的生产环境启动命令,确认本地可正常启动,排除代码本身的运行时错误。 - 查看完整报错日志:可通过Heroku CLI执行
heroku run cat /app/.npm/_logs/2021-09-01T11_44_33_888Z-debug.log获取完整的npm启动报错信息,定位具体的依赖缺失或命令执行错误。
内容的提问来源于stack exchange,提问作者chessy_250
相关产品推荐
相关产品推荐

