部署MERN应用至Heroku时遇Cannot find module错误求助
Heroku部署MERN应用出现Cannot find module错误的解决办法
检查
package.json的入口配置- 确认
"main"字段指向正确的启动文件,比如你的启动文件是server.js,则需设置为"main": "server.js" - 同时核对
"scripts"中的"start"命令,确保命令对应的文件名正确,例如"start": "node server.js"
- 确认
确认依赖归属
- 生产环境必需的依赖(如express、mongoose等)不能放在
devDependencies中,Heroku部署时会忽略该分组下的依赖,直接导致模块找不到 - 执行
npm install --save [依赖包名]将缺失的依赖移至dependencies分组,之后重新提交代码到git仓库
- 生产环境必需的依赖(如express、mongoose等)不能放在
检查
.gitignore规则- 确保没有误将启动文件、核心代码目录(如
src)加入忽略列表 - 若存在误配置,修改
.gitignore后重新提交被忽略的文件到git
- 确保没有误将启动文件、核心代码目录(如
清理Heroku缓存后重新部署
- 缓存残留可能导致依赖或文件异常,执行命令:
heroku repo:purge_cache -a [你的应用名称] - 完成后重新推送代码:
git push heroku main
- 缓存残留可能导致依赖或文件异常,执行命令:
内容的提问来源于stack exchange,提问作者Aksharmeet Singh
相关产品推荐
相关产品推荐

