Next.js报错求助:无法找到模块'next/headers'
解决Next.js中"Cannot find module 'next/headers'"报错的方案
问题背景
- 场景:小组项目中使用队友开发的登录功能时触发报错
- 报错信息:
error - Error: Cannot find module 'next/headers'
- 自身环境:npm 8.19.3、Node.js 16.17.0
- 项目依赖:package.json中Next.js版本为12.2.5
- 已尝试操作:删除node_modules和.next文件夹,问题未解决
核心原因
next/headers 是Next.js 13及以上版本才引入的专属API,你的项目依赖的Next.js 12.2.5完全不支持这个模块。大概率是队友本地已经升级了Next.js版本但未同步更新package.json,或者代码中误用了高版本API。
解决方案步骤
方案1:升级Next.js到兼容版本
- 执行Next.js升级命令:
npm install next@latest
- 同步升级配套的ESLint配置,避免版本冲突:
npm install eslint-config-next@latest
- 彻底清理缓存并重新安装依赖:
rm -rf node_modules package-lock.json .next npm install npm run dev
方案2:修改代码适配Next.js 12版本
如果暂时不想升级框架,需要替换代码中使用next/headers的逻辑:
- 在API路由中直接使用
req.headers获取请求头信息 - 若涉及服务器端数据获取,改用Next.js 12支持的
getServerSideProps传递请求头相关参数
方案3:统一项目依赖版本
- 让队友检查本地Next.js版本,确认是否和package.json声明一致:
npm list next
- 如果队友本地版本更高,要求其更新package.json中的Next.js版本号并提交代码,你拉取最新代码后重新安装依赖。
内容的提问来源于stack exchange,提问作者Arjun
相关产品推荐
相关产品推荐

