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

Heroku部署MERN项目报ENOENT 找不到package.json致部署失败

问题根因

构建失败和Node版本未指定无直接关联,核心触发原因是脚本路径拼写错误:
你配置的heroku-postbuild脚本中,npm install 命令后的 --prefix 参数将前端目录名 frontend 错写为 frontent(漏写字母d),npm按照错误路径查找对应目录下的package.json文件失败,抛出ENOENT文件不存在错误,直接终止构建流程。

修复步骤
  • 打开项目根目录的package.json文件,定位到scripts字段下的heroku-postbuild配置项
  • 将拼错的路径修正,修改后的完整脚本命令如下:
"heroku-postbuild": "NPM_CONFIG_PRODUCTION=false npm install --prefix frontend && npm run build --prefix frontend"
  • 核对本地项目的前端目录实际命名,确保和脚本里--prefix后的值完全一致(如果你的前端目录自定义命名为client等其他名称,要同步修改脚本里的路径值,不要硬套frontend)
  • 保存修改后提交代码到Git,重新执行git push heroku main推送即可触发重新构建
备用排查项(修正拼写后仍构建失败时核对)
  • 检查项目根目录的.gitignore文件,确认前端目录frontend没有被加入忽略列表,否则Heroku拉取代码时不会获取到前端目录文件,依然会报文件不存在错误
  • 如果你本地用yarn管理前端依赖,需要把postbuild脚本里的npm命令替换为对应yarn命令,避免包管理器混用导致的异常
  • 可在根目录package.json中新增engines字段显式指定Node、npm版本,和本地开发版本保持一致,规避默认版本兼容问题,配置示例:
"engines": {
  "node": "16.15.1",
  "npm": "8.11.0"
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 20:42:16