介绍

欢迎来到 Turborepo 文档!


什么是 Turborepo?

Turborepo 是一个用于 JavaScript 和 TypeScript 代码库的高性能构建系统。它专为扩展单体仓库(monorepos)而设计,同时也能使单包工作区的工作流程更快速。

从个人开发者到全球最大的企业工程组织,Turborepo 通过轻量级方法优化你需要在代码库中运行的任务,节省了数年的工程时间和数百万美元的计算成本。

单体仓库的问题

单体仓库有很多优势——但它们难以扩展。每个工作区都有自己的测试套件、自己的代码检查和自己的构建过程。一个单体仓库可能有数千个需要执行的任务

典型单体仓库的表示。第一个应用程序花了 110 秒完成其任务。第二个应用程序花了 140 秒完成其任务。它们之间共享的包花了 90 秒完成其任务。

这些减速可能会显著影响你的团队构建软件的方式,特别是在规模扩大时。反馈循环需要快速,以便开发人员能够快速交付高质量代码。

单体仓库的解决方案

使用 Turborepo 的单体仓库,展示它如何利用缓存在 80 毫秒内完成所有三个包的任务。

Turborepo 解决了你的单体仓库的扩展问题远程缓存存储所有任务的结果,这意味着你的 CI 永远不需要重复相同的工作

此外,在单体仓库中安排任务可能很困难。你可能需要先构建,然后测试,然后检查代码...

Turborepo 为最大速度安排你的任务,在所有可用核心上并行工作。

Turborepo 可以逐步采用,你可以在几分钟内将其添加到任何仓库。它使用你已经编写的 package.json 脚本、你已经声明的依赖项,以及一个 turbo.json 文件。你可以与任何包管理器一起使用,如 npmyarnpnpm,因为 Turborepo 依赖于 npm 生态系统的惯例。

如何使用这些文档

我们将尽最大努力减少专业术语——但有一些需要了解的词汇,这对理解文档很重要。我们创建了术语表页面来帮助你了解这些术语。

加入社区

如果你对 Turborepo 的任何相关问题有疑问,随时欢迎在 GitHub DiscussionsVercel CommunityTwitter 上向社区提问。