安装

内容

使用以下方式在几分钟内开始使用 Turborepo:

起始存储库将包括:

  • 两个可部署应用程序
  • 三个共享库,供整个 monorepo 使用

有关入门的更多详细信息,请访问 GitHub 上基本入门的 README。您还可以使用一个更符合您工具兴趣的示例

turbo 可以全局安装,也可以安装在您的存储库中。我们强烈建议两种方式都安装,这样您可以利用快速、便捷的工作流程,并为在您的存储库中工作的所有开发人员提供稳定版本的 turbo

全局安装 turbo 可为您的本地工作流程带来灵活性和速度。

一旦全局安装完成,您可以通过终端使用 turbo 运行您的脚本,快速运行一次性命令以在存储库中使用。例如:

  • turbo build: 运行 build 脚本,根据您的存储库依赖图运行
  • turbo build --filter=docs --dry: 快速打印有关您的 docs 包的 build 任务概要(而不运行它)
  • turbo generate: 运行生成器以向您的存储库添加新代码
  • cd apps/docs && turbo build: 运行 docs 包及其依赖项中的 build 脚本。有关更多信息,请访问自动包范围部分

好消息:

turboturbo run 的别名。例如,turbo buildturbo run build 都会运行您的 build 任务。

避免多个全局安装

如果之前安装过全局 turbo,请确保使用与现有安装相同的软件包管理器,以避免出现意外行为。您可以通过 turbo bin 快速检查之前使用的软件包管理器。

您在创建 CI 流水线时也可以利用全局 turbo。访问 构建 CI 指南获取更多信息。

与其他开发人员在存储库中合作时,固定依赖项的版本是个好主意。您可以通过在存储库的根目录中将 turbo 添加为 devDependency 来实现此目的:

您可以继续使用全局安装的 turbo 运行命令。如果存在,全局 turbo 将转而使用您存储库的本地版本。

这让您可以兼顾两种安装方式:在终端轻松运行命令,同时为存储库中的所有开发人员保持固定版本以确保一致的使用。

社区精选了一组示例,展示如何使用常见工具和库与Turborepo一起使用。要使用其中一个示例来引导您的monorepo,请使用--example标志:

使用以下示例名称之一:

名称

描述

通过在多个应用程序之间共享设计系统,统一您网站的外观和感觉。

想看更深入的示例吗?包括多个前端和后端框架。

在单个项目中使用 Turborepo 的示例,而不使用工作区

Simple Next.js monorepo 预配置以通过 Changesets 发布软件包

使用 Docker 部署的 Monorepo,其中包含 Express API 和 Next.js 应用,利用 turbo prune 进行优化

一个使用 Gatsby.js 和 Next.js 应用程序的 Monorepo,两者共享一个 UI 库

使用 Prisma 完全配置的 Next.js 应用的 Monorepo

一个带有共享 UI 库的简单 React Native 和 Next.js monorepo

使用单个 Next.js 应用程序的 Monorepo,该应用程序共享一个使用 Rollup 打包的 UI 库

具有多个共享 UI 库的 SvelteKit 应用的 Monorepo

使用共享配置的多个 Next.js 应用程序的 Monorepo,它们共享一个 UI 库,都使用 Tailwind CSS

使用 Vite 打包的多个原生 JS 应用程序的 Monorepo,共享一个 UI 库

使用Vue和Nuxt的Monorepo,共享UI库

总结
Turborepo是一个用于构建monorepo的工具,可以通过全局和本地安装两种方式使用。全局安装提供灵活性和速度,本地安装则保证所有开发者使用稳定版本。使用turbo可以运行脚本、生成代码、构建任务等。建议在CI流水线中使用全局turbo。通过添加turbo作为devDependency,可以固定依赖版本。社区提供了一系列示例,展示如何使用Turborepo。可以使用--example标志来使用示例,如basic、design-system等。全局turbo和本地turbo可以结合使用,既能在终端中运行命令,又能保持一致的版本。