我正在使用 Turborepo 创建一个 monorepo,我的应用程序文件夹中有两个应用程序:app-x,它使用“react”:“17.0.2”,和 app-y,它使用“react”:“18.0.2” .此外,我有一个单独的 ui 包组件,它使用 react 17.0.2 作为开发依赖。
运行我的应用程序后,我遇到了某种 React 版本冲突。我尝试在根 package.json 文件中设置分辨率,所有错误都消失了。然而,再次运行app-x后,似乎使用的是React version 18.0.2.
我一直在网上搜索解决方案,但没有找到适合我的情况的解决方案。如何在我的 monorepo 中使用两个不同的 React/React DOM 版本而不导致我的应用程序混乱?我只是希望 app-x 使用 React 版本 17.0.2,而 app-y 使用 React 版本 18.0.2。任何提示将不胜感激。
//root package.json
"resolutions": {
"@types/react": "<17.0.9",
"@types/react-dom": "<17.0.6",
"react": "17.0.2 || 18.2.0",
"react-dom": "17.0.2 || 18.2.0"
},
"overrides": {
"app-x": {
"react": "17.0.2",
"react-dom": "17.0.2"
},
"app-y": {
"react": "18.0.2",
"react-dom": "18.2.0"
}
},
Turbo官网有这个文档: https://turbo.build/repo/docs/handbook/troubleshooting