我有一个使用纱线工作区的monorepo。我有一个基于create-react-app的软件包,应该从一个通用模块(仓库中的同级软件包)导入。

这个通用的软件包不包含任何React组件。只是业务逻辑。它的源代码来自Typescript。通用程序包可以与其他程序包中的后端代码一起正常工作。

开箱即用,这不适用于CRA,并给我一个错误:

./src/App.tsx
找不到模块:无法解析“@ gemini / common”

配置CRA以查找模块时我需要做什么?

我在CRA monorepo支持上找到了this open issue,但不确定如何关联,并且那里有很多信息。

最佳答案

假设您的结构类似于

|- monorepo
  |- package.json
  |- packages
    |- cra
    |  |- package.json
    |
    |- common
      |- package.json
  • 确保已注册工作区
  • // monorepo/packages.json
    
    {
       "workspaces": {
        "packages": [
          "packages/*"
        ]
      },
    }
    
  • gemini软件包名称需要与所需路径
  • 匹配
    // monorepo/packages/gemini/package.json
    
    {
      "name": "@gemini/common"
    }
    
  • ,最后,将其用作cra
  • 中的依赖项
    // monorepo/packages/cra/package.json
    
    {
      "dependencies": {
        "@gemini/common": "*"
      }
    }
    
  • 运行yarn链接cra
  • 中的gemini

    09-27 21:27