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

如何将ReactJS前端与NodeJS后端应用部署至Heroku?

部署React+Node项目到Heroku:heroku-cra-node buildpack配置指南

嘿,看起来你已经找对了路子——用heroku-cra-node这个buildpack来整合React前端和Node后端的部署流程,完美适配Heroku的部署逻辑!我帮你把你提到的package.json脚本配置补全,再拆解下关键细节:

完整的package.json脚本配置

你的脚本已经对齐了buildpack的核心要求,完整版本应该是这样的:

{
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "cd backend && npm install && node server.js",
    "heroku-postbuild": "cd frontend && npm install && npm install --only=dev --no-shrinkwrap && npm run build"
  }
}

关键脚本解析

  • start命令:Heroku启动应用时会执行这个脚本,它会进入后端目录,安装依赖(虽然Heroku通常会提前处理依赖,但加上这一步能避免特殊场景下的依赖缺失),然后启动你的Node服务器。
  • heroku-postbuild命令:这是Heroku部署流程中的核心构建钩子——专门用来处理前端的生产构建:
    • 进入前端目录安装所有依赖
    • 单独安装开发依赖(确保React的构建工具比如webpack、babel等可用)
    • 执行npm run build生成生产环境的静态文件包

必看的额外配置要点

  • 目录结构要求:必须严格遵循buildpack的约定:根目录下有backend和frontend两个子目录,每个目录下都要有自己独立的package.json文件。
  • 后端静态资源托管:你的Node后端需要配置静态文件服务,把前端构建好的frontend/build目录作为静态资源目录,这样用户访问时才能正确返回React页面。
  • 版本锁定:建议在根目录的package.json里添加engines字段,指定Node和npm的版本,避免Heroku使用不兼容的版本导致部署失败:
    "engines": {
      "node": "18.x",
      "npm": "9.x"
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:30:17