You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Yarn PnP的单体仓库中Next.js构建失败问题求助

解决Next.js构建时Cannot find module 'next/app'的问题

可能的原因及修复步骤

1. 对齐Next.js与类型依赖版本

Next.js 13.0.5的next/app类型声明可能存在版本兼容问题,或者项目中@types/next依赖缺失、版本不匹配:

  • 执行yarn add -D @types/next@13.0.5,确保类型包版本和Next.js主版本完全一致
  • 检查Lerna monorepo根目录的node_modules,确认next和@types/next已正确安装,避免子包依赖被隔离

2. 调整Yarn 3的依赖解析模式

Yarn 3的PnP模式在monorepo场景下可能导致模块解析异常:

  • 在根目录.yarnrc.yml中添加/修改配置,切换回传统node_modules模式:
    nodeLinker: node-modules
    
  • 执行yarn install重新安装依赖

3. 修正Lerna构建的包范围与脚本

Lerna可能未正确处理子包的依赖环境:

  • 构建时指定目标子包:lerna run build --scope=你的next项目包名,避免影响无关包
  • 检查子包package.json,确保next在dependencies而非devDependencies中,且scripts.build为next build

4. 检查TS配置的类型路径与包含范围

  • 打开tsconfig.json,确认compilerOptions.paths未错误覆盖next路径:
    {
      "compilerOptions": {
        "paths": {
          "next/*": ["./node_modules/next/*"]
        }
      }
    }
    
  • 确保include数组包含Next.js自动生成的类型声明文件:
    {
      "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"]
    }
    

5. 清理缓存后重新构建

缓存残留可能引发解析异常:

  • 执行yarn cache clean清理Yarn缓存
  • 删除子包的.next文件夹和根目录node_modules,再重新执行yarn install && yarn build

内容的提问来源于stack exchange,提问作者Yoni hodefi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 04:35:28