Repo
文档
支持策略

操作系统

turbo 通常在基于 Debian 的 Linux 发行版、macOS 和 Windows 上支持,无论是在 x86_64 还是 ARM 64 架构上。具体来说,我们通过 npm 构建并发布以下二进制文件

  • turbo-darwin-64(带有 Intel 芯片的 macOS)
  • turbo-darwin-arm64(带有 Apple Silicon 的 macOS)
  • turbo-linux-64
  • turbo-linux-arm64
  • turbo-windows-64
  • turbo-windows-arm64

Darwin 构建适用于带有 Intel 和 Apple Silicon 的 macOS。Linux 构建在 Ubuntu 上测试,但我们预计它们可以在大多数 基于 Debian 的 (在新标签页打开) 发行版上运行。Windows 构建在 GitHub Actions 中的 windows-latest 运行器 (在新标签页打开) 上测试。

不支持的平台

在不支持的平台上运行 turbo 可以通过从源代码编译来实现。说明在 贡献指南 (在新标签页打开) 中提供。构建的源代码是一个单一的二进制文件,因此您将直接运行 turbo 二进制文件,而不是通过您的 Node.js 包管理器(例如 npm install turbo)安装和调用。

/path/to/turbo run build

由于此类 turbo 调用也会推迟到您 node_modules 目录中本地安装的 turbo,如果您尝试在带有 turbo 的 package.json 依赖项的 JavaScript 项目上运行 turbo,请使用 --skip-infer 标志跳过推迟到本地安装的二进制文件。

Node.js 兼容性

大多数核心 turbo 功能(尤其是 turbo run)不依赖于系统上活动的 Node.js 版本,但 Turborepo 及其生态系统的一些功能(例如 create-turboturbo-ignoreeslint-plugin-turbo)确实依赖。对于这些功能,我们打算支持 Node.js 的活动和维护 LTS 版本 (在新标签页打开)

我们所有的 示例 也应该适用于这些版本。

包管理器

核心 turbo 功能依赖于 JS 生态系统中的包管理器及其对工作区配置(在单仓库中)和锁文件格式的实现。我们打算支持

  • npm (v6+)
  • yarn (v1+) (v4 部分支持)
  • pnpm (v6+)
  • bun (v1+) (beta,不支持所有功能)

需要注意的是,包管理器本身有自己的发布计划、错误和功能。虽然我们打算跟上新的主要版本,但我们可能不会立即发布支持。

版本控制

我们支持使用 .git 进行版本控制的仓库,以及完全没有版本控制的仓库。任何其他版本控制系统都将被忽略。请注意,我们使用 git 来对文件进行哈希处理,因此没有 git 的仓库可能会执行和表现不同。

发布

Turborepo “松散地” 遵循 SemVer 策略。这意味着我们通常不希望在补丁或次要版本中进行故意的“破坏性”更改。

对此的一些例外情况可能是

  • turbo.json 中的配置更改。

    这些通常应该伴随着一个代码修改,你可以使用 npx @turbo/codemod update 运行,并且至少有一个次要版本包含弃用消息。

  • turbo 的 CLI 命令的故意行为更改。

    这些应该在次要版本中发布。如果更改足够大或具有破坏性,我们可能会包含标志来选择加入之前的行为。