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

将MERN栈项目部署至Heroku时出现模块找不到错误

部署报错:找不到模块 /app/backend/server.js

问题详情

配置React应用的post build脚本后,部署时系统提示找不到模块 /app/backend/server.js,相关配置及项目结构如下:

Procfile内容

web: node Backend/server.js

package.json配置

{
  "name": "ecommerce",
  "version": "1.0.0",
  "description": "",
  "main": "Backend/server.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "node backend/server.js",
    "dev": "nodemon backend/server.js",
    "heroku-postbuild": "NPM_CONFIG_PRODUCTION=false && npm install --prefix frontend && npm run build --prefix frontend"
   },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "bcryptjs": "^2.4.3",
    "body-parser": "^1.19.0",
    "cloudinary": "^1.28.1",
    "cookie-parser": "^1.4.5",
    "dotenv": "^10.0.0",
    "express": "^4.17.1",
    "express-fileupload": "^1.2.1",
    "jsonwebtoken": "^8.5.1",
    "mongoose": "^6.0.10",
    "nodemailer": "^6.7.0",
    "nodemon": "^2.0.13",
    "stripe": "^8.197.0",
    "validator": "^13.6.0"
  }
}

项目结构

  • Backend/
  • frontend/
  • Procfile
  • package-lock.json
  • package.json

解决方案

核心问题是路径大小写不匹配:
Heroku的文件系统区分大小写,项目实际目录是大写的Backend/,但package.json的start、dev脚本里写的是小写的backend/server.js,两者不一致导致找不到文件。

修复方式(二选一即可)

  1. 修改目录名称:把项目中的Backend/重命名为backend/,保持脚本中的路径不变。
  2. 修改脚本路径:将package.json里的start、dev脚本路径改为Backend/server.js,和Procfile、main字段保持一致:
    "scripts": {
      "start": "node Backend/server.js",
      "dev": "nodemon Backend/server.js",
      // 其他脚本不变
    }
    

修改后重新部署即可解决该问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 11:24:37