Next.js项目部署至Heroku构建失败报ModuleNotFoundError问题求助
问题现象
部署Next.js项目到Heroku平台时构建失败,抛出如下错误:
Failed to compile. ModuleNotFoundError: Module not found: Error: Can't resolve '../components/application' in '/tmp/build_4b987283/src/pages' > Build error occurred Error: > Build failed because of webpack errors
调整文件/文件夹名称后,会随机出现其他模块找不到的报错。
排查解决步骤
- 先排查文件名大小写问题:Heroku构建环境为大小写敏感的Linux系统,Mac/Windows本地开发环境大小写不敏感,容易出现本地运行正常、线上构建失败的情况。检查引入路径的大小写和实际文件/文件夹的大小写是否完全一致,比如实际文件名为
Application.js就不能写成../components/application,必须严格匹配。 - 检查本地构建是否正常:不要仅依赖
next dev的运行结果,本地执行next build命令测试构建流程,若本地也能复现模块找不到的问题,优先修复本地路径错误后再部署。 - 检查.gitignore规则:确认
.gitignore文件没有误将components目录或内部模块文件列入忽略范围,避免部署时相关文件未被提交到代码库导致构建时找不到。 - 校验路径别名配置:如果项目配置了
tsconfig.json/jsconfig.json的paths别名(比如@/components/*),确认别名规则书写正确,同时检查next.config.js中是否对应配置了webpack别名识别规则,避免构建时无法解析别名路径。 - 清理Heroku构建缓存:修改文件名后旧的构建缓存可能残留异常文件,执行
heroku builds:cache:purge -a 你的Heroku应用名命令清理缓存后,重新推送代码部署。 - 确认部署分支正确性:检查本地修改后的代码是否已经提交并推送到Heroku绑定的部署分支,避免本地修改未同步到线上导致报错。
内容的提问来源于stack exchange,提问作者cocoenjeux
相关产品推荐
相关产品推荐

