Turborepo+Docusaurus环境下React版本冲突问题求助
解决Turborepo+Docusaurus+Next.js的依赖冲突问题
问题根源
你遇到的是monorepo场景下的依赖版本冲突:Docusaurus安装时引入的React依赖版本,和Next.js要求的>=18.2.0版本不匹配,导致npm解析依赖时出现大量警告,同时Next.js因找不到符合要求的React版本无法启动。
解决步骤
1. 统一根目录的React依赖版本
在项目根目录的package.json中,添加或修改react和react-dom的版本为Next.js要求的18.2.0,确保整个monorepo使用统一版本:
"dependencies": { "react": "^18.2.0", "react-dom": "^18.2.0" }
如果根目录原本没有这两个依赖,直接添加即可;如果已有,修改版本号为^18.2.0。
2. 添加npm Overrides强制版本统一
在根目录package.json中新增overrides字段,强制所有子项目使用指定的React版本,彻底解决依赖解析冲突:
"overrides": { "react": "^18.2.0", "react-dom": "^18.2.0" }
3. 清理旧依赖和缓存
执行以下命令清理现有依赖和npm缓存,避免残留问题:
# 删除根目录和所有子项目的node_modules rm -rf node_modules apps/*/node_modules # 清除npm缓存 npm cache clean --force
4. 重新安装依赖
回到项目根目录,重新执行安装命令:
npm install
5. 验证Next.js应用启动
进入Next.js应用目录(比如apps/web),尝试启动:
npm run dev
内容的提问来源于stack exchange,提问作者nehalist
相关产品推荐
相关产品推荐

