如何将 Turborepo 用于使用 Create React App 创建的现有 React 应用程序,以使其成为单一存储库?

coo*_*kun 11 reactjs create-react-app monorepo npm-workspaces turborepo

我有一个用 create React app 制作的有趣项目。我想将同一应用程序转换为浏览器扩展。这个想法迫使我将该项目设为单一存储库。因为在这两个应用程序中,我将使用相同的组件、钩子、提供程序等。

我不想使用 Lerna 或 Yarn 工作区。而且,这将是我的第一个单一仓库。我想开始使用 Turborepo。但是,我无法想象如何让它以良好的方式工作。

我的目标文件夹结构如下

  • 应用/
    • 应用程序1/
    • 应用2/
  • 包/
    • 成分/
    • 钩子/
    • 提供商/
    • 款式/
  • 包.json
  • 包锁.json

我会将包文件夹中的 monorepo 依赖项导入到 apps 文件夹中存在的 apps 中。

例如;

import { useExampleHook } from '@projectname/hooks'
import { ExampleComponent } from '@projectname/components'
Run Code Online (Sandbox Code Playgroud)

如果您除了 Turborepo 之外还有其他解决方案,请随时告诉我。NPM 工作区也是一个可以接受的解决方案。但是,turborepo 由于性能更好而具有优先权。

预先感谢您的时间和答复

小智 -2

Turborepo在他们的文档中对如何做到这一点有很好的解释。

简而言之: Turborepo 被认为是一个任务运行程序。因此,它被添加为现有项目的开发依赖项。

npm install turbo -D

您唯一应该注意的是涡轮任务本身。因此,您必须调整启动脚本和管道。