添加到现有仓库
Turborepo 可以在**任何仓库(单包或多包)**中逐步采用,以加快仓库的开发者和 CI 工作流程。
在安装 turbo
并在 turbo.json
中配置你的任务后,你会注意到缓存如何帮助你更快地运行任务。
准备单包工作区
单包工作区是指例如运行 npx create-next-app
或 npm create vite
后得到的工作区。你不需要做任何额外的工作就能让 Turborepo 处理你的仓库,所以你可以直接跳到下面的第一步。
要了解更多关于单包工作区中的 Turborepo,请访问专门的指南。
准备多包工作区(单体仓库)
turbo
建立在工作区之上,这是 JavaScript 生态系统中主要包管理器的一个功能。这使得它很容易在你的现有代码库中采用。
Good to know:
如果你发现 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 使用包管理器的信息来优化你的仓库。要声明你使用的包管理器,如果你还没有的话,请在根 package.json
中添加一个 packageManager
字段。
Good to know:
根据你的仓库,在迁移过程中或在你还不能使用 packageManager
键的情况下,你可能需要使用
dangerouslyDisablePackageManagerCheck
。
使用 turbo 运行任务
你现在可以使用 Turborepo 运行你之前添加到 turbo.json
的任务。使用上面的示例任务:
这会同时运行 build
和 check-types
任务。你的工作区的依赖图将被用来按正确的顺序运行任务。
在不对代码做任何更改的情况下,再次尝试运行 build
和 check-types
:
你应该看到类似这样的终端输出:
恭喜!你刚刚在几毫秒内构建并类型检查了你的代码。
要了解更多关于 turbo
如何实现这一点,请查看缓存文档。
通过运行 dev 开始开发
在多包工作区中,你可以运行 turbo dev
来同时启动所有包的开发任务。
你也可以使用过滤器来专注于特定包及其依赖。
注意,这一步在单包工作区中没有太多价值,因为:
- 你不会缓存开发任务的输出。
- 只有一个开发脚本,所以没有什么可以并行运行的。