NextJS 12执行production build时出现Module not found错误如何解决?
NextJS 12 生产构建Module not found错误排查方案
- 优先处理依赖版本冲突问题
删除项目本地的node_modules文件夹、package-lock.json/yarn.lock/pnpm-lock.yaml锁文件,重新执行对应包管理器的安装命令。你当前报错指向全局npm路径下的next包,说明构建时错误调用了全局安装的next,和本地项目的依赖版本不匹配。 - 调整构建命令的调用方式
不要直接执行全局的next build,在项目package.json的scripts字段中添加配置:
{ "scripts": { "build": "next build" } }
后续执行npm run build触发构建,强制使用项目本地安装的next版本。
- 检查路径大小写问题
Windows系统开发模式下不区分文件路径大小写,NextJS12生产构建默认开启严格路径校验,检查项目中所有import语句的路径大小写是否和实际文件路径完全一致,比如实际文件为Header.js但引入写为header.js的这类写法需要修正。 - 排查自定义webpack配置
如果项目next.config.js中自定义了webpack配置,先暂时注释所有自定义配置后再尝试构建,确认是否是自定义的resolve规则、别名配置错误导致的模块解析失败。如果确认是配置问题,可以添加别名强制指向本地next包:
module.exports = { webpack: (config) => { config.resolve.alias['next/dist/client/next.js'] = require.resolve('next/dist/client/next.js') return config } }
- 升级Node版本
Node 16.13.0属于早期Node16版本,存在和NextJS12适配的路径解析已知bug,可以升级到Node16的最新LTS版本后重新安装依赖再尝试构建。
内容的提问来源于stack exchange,提问作者user391986
相关产品推荐
相关产品推荐

