Turborepo logo

简介

欢迎来到 Turborepo 文档!


什么是 Turborepo?

Turborepo 是一个用于 JavaScript 和 TypeScript 代码库的高性能构建系统。它专为扩展 monorepo 而设计,并且也使单包工作空间的工作流程更快。

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

Monorepo 问题

Monorepo 有许多优点 - 但它们难以扩展。每个工作空间都有自己的测试套件、自己的 linting 和自己的构建过程。一个单一的 monorepo 可能有数千个任务要执行

A representation of a typical monorepo. The first application took 110 seconds to complete its tasks. The second application took 140 seconds to complete its tasks. The shared package between them took 90 seconds to complete its tasks.

这些减速会极大地影响您的团队构建软件的方式,尤其是在规模化时。反馈循环需要快速,以便开发人员可以快速交付高质量的代码。

Monorepo 解决方案

The monorepo from before using Turborepo, showing how it can hit cache to complete tasks for all three packages in 80 milliseconds.

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

此外,任务调度在 monorepo 中可能很困难。您可能需要先构建,然后测试,然后进行 linting...

Turborepo 调度您的任务以实现最大速度,在所有可用核心上并行处理工作。

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

如何使用这些文档

我们将尽力减少术语的使用 - 但在您阅读文档时,有一些必知词汇非常重要。我们创建了一个术语表页面,以帮助您了解这些术语。

加入社区

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

小时

总计算时间节省
开始使用
远程缓存 →

本页目录