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

如何修复Node.js部署Heroku时PROJECT_PATH未定义导致的推送失败?

部署Heroku后端报错的解决步骤

1. 修复PROJECT_PATH未定义问题

  • 你用了Subdir buildpack但没配置PROJECT_PATH环境变量,这是编译失败的核心原因。打开Heroku应用的设置页面,找到「Config Vars」区域,添加一条配置:
    • 键:PROJECT_PATH
    • 值:backend(对应你的后端代码所在目录)
  • 也可以用命令行快速设置:
    heroku config:set PROJECT_PATH=backend --app 你的应用名称
    

2. 解决重复代码版本冲突

  • 从截图看你的项目根目录和backend子目录都有package.json,这会让Heroku混淆依赖安装路径。只保留backend目录下的package.json,把根目录的package.json删除或重命名(比如改成package.json.bak),避免依赖安装冲突。

3. 确认Procfile配置有效性

  • 你的Procfile内容web: node backend/backend.js没问题,但要注意两点:
    • Procfile必须放在项目根目录,且文件名首字母大写(你的截图显示是对的);
    • 后端入口文件backend.js里的端口必须读取Heroku的环境变量,不能硬编码,示例代码:
      const port = process.env.PORT || 3000;
      app.listen(port, () => console.log(`服务运行在端口 ${port}`));
      

4. 重新部署操作

  • 先清理旧的buildpack,再按顺序添加正确的buildpack:
    heroku buildpacks:clear --app 你的应用名称
    heroku buildpacks:add heroku/nodejs --app 你的应用名称
    heroku buildpacks:add https://github.com/timanovsky/subdir-heroku-buildpack --app 你的应用名称
    
  • 提交修改后重新推送:
    git add .
    git commit -m "修复构建问题:配置PROJECT_PATH,清理重复package.json"
    git push heroku main
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 10:57:43