如何在带有 Turborepo 的 monorepo 中使用两个不同的 React 版本并避免冲突?

问题描述 投票:0回答:1

我正在使用 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"
    }
  },

reactjs npm react-dom monorepo
1个回答
-1
投票
© www.soinside.com 2019 - 2024. All rights reserved.