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

Heroku部署的NodeJS+ReactJS应用生产构建出现开发环境错误

解决Heroku部署React+Node应用出现开发环境错误的问题

嘿,我之前也碰到过一模一样的情况,咱们一步步来排查和解决:

1. 确认Heroku是否真的执行了生产构建

本地跑npm run build没问题,但Heroku可能没自动触发这个命令,得先确认这点:

  • 去Heroku的应用控制台,找到「更多」→「查看构建日志」,搜索npm run build或者heroku-postbuild,看有没有相关的执行记录。
  • 如果用的是node.js buildpack,必须在package.json的scripts里配置正确的构建命令,比如:
    "scripts": {
      "start": "node server.js", // 替换成你的后端启动命令
      "build": "react-scripts build",
      "heroku-postbuild": "npm run build"
    }
    
    Node.js buildpack默认只会执行npm install,只有配置了heroku-postbuild,它才会在安装依赖后自动构建React项目。

2. 检查生产环境的NODE_ENV变量

开发环境的错误提示(比如React严格模式警告、开发工具相关报错)大多是因为NODE_ENV没设为production:

  • 打开Heroku控制台的「设置」→「配置变量」,确认有没有NODE_ENV,值是不是production。
  • 如果没有,用命令行设置:heroku config:set NODE_ENV=production,然后重新部署。

3. 验证buildpack的配置是否正确

如果你切换过buildpack,可能需要重新触发构建:

  • 如果用的是create-react-app buildpack,确保项目根目录有public和src文件夹,package.json在根路径,没有额外的自定义服务器配置(这个buildpack专门针对纯React项目)。
  • 不管用哪种buildpack,都可以通过空提交触发重新构建:
    git commit --allow-empty -m "Force rebuild on Heroku"
    git push heroku main
    

4. 本地模拟生产环境排查

有时候问题可能藏在代码里,只是本地没触发:

  • 在本地设置生产环境变量,然后构建并启动服务:
    # Mac/Linux
    NODE_ENV=production npm run build && serve -s build
    # Windows(PowerShell)
    $env:NODE_ENV="production"; npm run build; serve -s build
    
    如果本地这样跑也出现同样的错误,那就是代码里有依赖开发环境的逻辑,得检查是不是有if (process.env.NODE_ENV === 'development')之类的判断写错了。

如果这些步骤都试过还是有问题,可以把Heroku的构建日志或者报错信息贴出来,能更精准定位~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:22:05