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

pnpm monorepo迁移后React类型版本不匹配问题求助

解决pnpm monorepo中React类型版本不匹配的问题

以下是针对你遇到的TypeScript识别@types/react版本错误的具体解决步骤:

  • 明确子包依赖声明
    确保packages/native的package.json中,@types/react和react都明确指定为16.x版本,且作为devDependencies;packages/web则对应指定18.x版本。示例:

    // packages/native/package.json
    {
      "devDependencies": {
        "@types/react": "^16.14.34",
        "react": "^16.14.0"
      }
    }
    
  • 强制子包使用本地类型文件
    在packages/native的tsconfig.json中配置paths,让TypeScript强制使用当前包内的@types/react,避免向上查找根目录的高版本类型:

    {
      "compilerOptions": {
        "paths": {
          "react": ["./node_modules/@types/react"],
          "@types/react": ["./node_modules/@types/react"]
        }
      }
    }
    

    或者通过typeRoots限制类型查找范围:

    {
      "compilerOptions": {
        "typeRoots": ["./node_modules/@types"]
      }
    }
    
  • 禁止pnpm提升@types/react依赖
    在根目录的package.json中添加pnpm配置,阻止@types/react被提升到根目录,确保每个子包保留独立的版本:

    {
      "pnpm": {
        "hoist": {
          "exclude": ["@types/react"]
        }
      }
    }
    
  • 清理缓存并重新安装
    执行以下命令彻底清理缓存并重新构建依赖树:

    pnpm store prune
    pnpm install
    
  • 检查peer依赖配置
    如果子包中有依赖其他内部包的情况,确保内部包的peerDependencies没有强制指定单一版本的react或@types/react,避免冲突。

内容的提问来源于stack exchange,提问作者Tom Sherman

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 01:45:33