Next.js项目在Vercel构建报错Module not found 如何排查解决
Next.js 部署 Vercel 报 Module not found 排查方案
- 大小写路径不匹配:本地开发环境(Windows/macOS)对文件路径大小写不敏感,Vercel 构建使用的 Linux 环境大小写敏感,检查所有自定义组件的 import 路径大小写是否和实际文件名完全一致,例如
import Card from '@/components/MyCard'需对应实际文件components/MyCard.js,不能是mycard.js或者myCard.js。 - 路径引用错误:检查相对路径层级是否正确,若使用了
jsconfig.json/tsconfig.json配置的路径别名(例如@/*指向源码目录),确认该配置文件已提交到 GitHub 仓库,未被.gitignore忽略。 - 依赖兼容问题:Next.js 11 已内置 Sass 支持,无需再安装已停止维护的
@zeit/next-sass包,且node-sass已被官方弃用,极易出现版本兼容问题,可修改 package.json 移除@zeit/next-sass、将node-sass替换为sass后重新测试构建。 - 文件未提交到仓库:检查你的自定义组件目录是否被写入了
.gitignore规则,导致对应组件文件没有上传到 GitHub,Vercel 拉取的代码中缺少对应文件自然无法找到模块,可直接访问 GitHub 仓库对应路径确认文件是否存在。 - 依赖版本不一致:确认你已将包管理器的锁文件(
package-lock.json/yarn.lock/pnpm-lock.yaml)提交到仓库,避免 Vercel 安装依赖时拉取的依赖版本和本地不一致导致模块缺失。 - 依赖名称拼写错误:检查所有第三方依赖的 import 名称是否和 package.json 中的依赖名完全一致,例如
@material-ui/icons不能少写末尾的s。
内容的提问来源于stack exchange,提问作者Mari Selvan
相关产品推荐
相关产品推荐

