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

子文件夹存放代码时如何将Node.js应用部署到Heroku平台

可行的部署方案

方案1:配置Heroku项目路径(推荐,无需修改项目结构)

这是目前Heroku Node.js buildpack原生支持的方案,操作最简单:

  • 确保你提交到Git的根目录为myProject,包含完整的client、server文件夹
  • 运行Heroku CLI命令设置环境变量:heroku config:set PROJECT_PATH=server -a 你的Heroku应用名称
  • 正常提交代码推送Heroku即可,build过程会自动识别server目录下的package.json执行依赖安装、构建和启动逻辑

方案2:新增根目录代理package.json

如果方案1不匹配你的项目配置,可以用代理脚本的方式兼容:

  • 在myProject根目录新建package.json,参考内容如下:
{
  "name": "root-deploy-proxy",
  "version": "1.0.0",
  "engines": {
    "node": "填写和server目录下package.json一致的Node.js版本号"
  },
  "scripts": {
    "install": "cd server && npm install && cd ../client && npm install",
    "build": "cd client && npm run build",
    "start": "cd server && npm start"
  }
}
  • 如果你需要将Next.js构建产物托管到Node服务下,可在build脚本末尾添加移动产物的命令,例如&& mv .next ../server/static,根据你自己的服务静态目录配置调整即可
  • 把新增的根目录package.json提交到Git后正常推送Heroku即可

可选方案:前后端分离部署

如果不需要前后端部署在同一个实例下,也可以将Next.js应用直接部署到Vercel,Node服务单独部署到Heroku,无需调整现有目录结构。

注意事项

  • 所有目录下的node_modules都需要添加到.gitignore中,不要提交到代码仓库
  • 如果你使用yarn/pnpm作为包管理器,把上述脚本中的npm替换为对应的包管理器命令即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 05:39:03