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

Heroku部署React+Node全栈项目时build脚本无限重复如何解决?

问题原因

你的构建死循环根本原因是client目录下的package.json缺少独立的build脚本配置。当你在根目录执行npm run build时,脚本会进入client目录执行npm run build,此时npm会优先查找当前目录(client)的package.json里的build命令,如果找不到就会向上递归查找父级目录的package.json,刚好根目录的build命令又是进入client执行build,就形成了无限递归循环。

解决方案

  • 第一步:检查client目录下的package.json文件,在scripts字段中添加React项目的构建命令,如果你用的是create-react-app初始化的项目,配置如下:
{
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  }
}
  • 第二步:优化根目录的package.json脚本,移除build命令里冗余的npm install,Heroku会自动处理依赖安装,也可以替换为专门的Heroku构建钩子避免冲突:
{
  "scripts": {
    "start": "node server/index.js",
    "heroku-postbuild": "cd client && npm run build"
  }
}
  • 第三步:确保你的.gitignore文件中已经添加了根目录和client目录的node_modules,不要把依赖包提交到Git仓库,避免构建时出现依赖冲突。
  • 第四步:本地先执行根目录的npm run build命令验证,确认不会出现循环、可以正常生成client/build目录的静态资源后,再推送到Heroku重新构建即可。

内容的提问来源于stack exchange,提问作者Maiko vd Veen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 04:57:02