添加到现有仓库
Turborepo 可以逐步应用于任何仓库,单包或多包,以加速仓库的开发者和 CI 工作流程。
在安装 turbo
并在 turbo.json
中配置你的任务后,你将注意到缓存如何帮助你更快地运行任务。
准备单包工作区
例如,单包工作区 是你在运行 npx create-next-app
或 npm create vite
后得到的。你不需要为 Turborepo 处理你的仓库做任何额外的工作,所以你可以跳到下面的第一步。
要了解更多关于 Turborepo 在单包工作区中的信息,请访问专门的指南。
准备多包工作区 (Monorepo)
turbo
构建于 Workspaces 之上,Workspaces 是 JavaScript 生态系统中主要包管理器的一个功能。这使得它很容易在你现有的代码库中采用。
须知:
如果你发现 turbo
遇到问题,例如无法发现你工作区中的包或不遵循你的依赖关系图,请访问我们的仓库结构页面以获取提示。
请注意,你不必立即开始使用 turbo
为所有包运行所有任务。你可以从少数包中的单个任务开始,并随着你越来越熟悉 Turborepo 逐步添加更多任务和包。
将 Turborepo 添加到你的仓库
添加 turbo.json
文件
在你的仓库根目录中,创建一个 turbo.json
文件。
在本指南中,我们将使用 build
和 check-types
任务,但你可以将它们替换为你感兴趣的其他任务,例如 lint
或 test
。
有关配置 turbo.json
的更多信息,请参阅配置选项文档。
在你的 Next.js 应用程序中,确保你有一个 check-types
脚本供 turbo
运行。
在多包工作区中,你可能还想向你的一个或多个库包添加 check-types
脚本,以查看如何使用一个 turbo
命令跨不同包运行多个脚本。
在根目录 package.json
中添加 packageManager
字段
Turborepo 使用来自你的包管理器的信息优化你的仓库。要声明你正在使用的包管理器,如果你还没有,请将 packageManager
字段添加到你的根目录 package.json
中。
须知:
根据你的仓库情况,在迁移时或者在你还不能使用 packageManager
键的情况下,你可能需要使用 dangerouslyDisablePackageManagerCheck
。
使用 turbo
运行任务
你现在可以使用 Turborepo 运行你之前添加到 turbo.json
中的任务。 使用上面的示例任务
这将同时运行 build
和 check-types
任务。 你的工作区的依赖关系图将用于以正确的顺序运行任务。
在不更改任何代码的情况下,尝试再次运行 build
和 check-types
你应该看到像这样的终端输出
恭喜你! 你刚刚在毫秒内构建并进行了代码类型检查。
要了解更多关于 turbo
如何实现这一点的信息,请查看缓存文档。
通过使用 turbo
运行 dev
开始开发
在多包工作区中,你可以运行 turbo dev
一次性启动所有包的开发任务。
你也可以使用过滤器来专注于特定的包及其依赖项。
请注意,此步骤在单包工作区中没有太多价值,因为
- 你不会缓存开发任务的输出。
- 只有一个开发脚本,因此没有什么可以并行运行的。
下一步
你现在已经启动并运行了 Turborepo! 要了解更多可以改进你的工作流程并充分利用 turbo
的方法,我们建议查看以下页面