5

我有一个使用 Yarn 工作区的 monorepo。我有一个基于 create-react-app 的包,它应该从一个通用模块(repo 中的兄弟包)导入。

这个通用包不包含任何 React 组件。只是业务逻辑。它的源代码是从 Typescript 转译而来的。通用包可以很好地与我在其他包中的后端代码一起使用。

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

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

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

我在 CRA monorepo 支持上发现了这个未解决的问题,但我不确定它是如何关联的,并且那里有很多信息。

4

1 回答 1

5

让我们假设您的结构类似于

|- monorepo
  |- package.json
  |- packages
    |- cra
    |  |- package.json
    |
    |- common
      |- package.json
  1. 确保已注册工作区
// monorepo/packages.json

{
   "workspaces": {
    "packages": [
      "packages/*"
    ]
  },
}
  1. 双子座包名称需要匹配所需的路径
// monorepo/packages/gemini/package.json

{
  "name": "@gemini/common"
}
  1. 最后,将其用作 cra 中的依赖项
// monorepo/packages/cra/package.json

{
  "dependencies": {
    "@gemini/common": "*"
  }
}
  1. 运行yarn以链接 cra 中的双子座
于 2019-08-21T15:38:53.970 回答