支持策略

包管理器

核心 turbo 功能取决于 JavaScript 生态系统中的包管理器及其工作区和 lockfile 格式的实现。

包管理器支持
pnpm 8+
npm 8+
yarn 1+是(包括 Yarn Plug'n'Play)
bun 1.2+Beta

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

平台

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*

*:需要 Windows C 运行时库

Node.js

核心 turbo 功能不依赖于系统上活动的 Node.js 版本,但 Turborepo 生态系统中的某些包,例如 create-turboturbo-ignoreeslint-config-turbo 则依赖于 Node.js 版本。 对于这些功能,我们计划支持 Node.js 的 Active 和 Maintenance LTS 版本

Turborepo 的 示例 也应该与这些 Node.js 版本一起使用。

版本控制

我们支持使用 Git 进行版本控制的仓库以及根本没有版本控制的仓库。任何其他版本控制系统都将被忽略。

请注意,我们使用 Git 来哈希文件,因此没有 git 的仓库的性能和行为可能会有所不同。

LTS 策略

Turborepo 的主要版本将从下一个主要版本的发布日期起支持两年。

旧版本中关键安全修复所需的更改将被向后移植。这种情况将很少见,并且将作为 semver-minor 版本发布,即使它们是破坏性更改。

我们强烈建议您尽可能使用最新版本的 Turborepo。

主要版本发布日期终止支持日期
2.x2024 年 6 月 4 日
1.x2021 年 12 月 9 日2026 年 6 月 4 日

发布阶段

Turborepo 的稳定构建遵循语义版本控制 (semver),并在发布前经过全面测试。

Turborepo 还提供特定的 API,这些 API 可能会在开发的早期阶段发布。 这是为了让早期采用者提供有价值的反馈,并帮助核心团队在 API 稳定发布之前对其建立信心。 预稳定版本中可用的 API 将在文档和 turbo 本身中尽可能地标记出来。

并非每个 API 都会在每个阶段发布。 我们会根据我们对该功能的信心,使用最佳判断来确定 API 的阶段,权衡诸如功能的复杂性、可能的用例以及早期 API 用户反馈等因素。

Turborepo 核心团队感谢任何早期使用功能的用户,并对您提供的任何反馈表示感谢。

稳定版

当 API 达到稳定状态时,它被认为可以用于生产环境。 标记为稳定的 API 只会在主要版本中以向后兼容的方式进行更改。

  • 如果稳定的 API 将在即将到来的主要版本中进行破坏性更改,则将提供警告和文档,以帮助进行迁移和后续步骤。
  • 如果稳定的 API 将在即将到来的主要版本中删除,它将被标记为 已弃用,以便尽早通知未来的删除。

Beta

Beta API 在稳定发布之前需要对可靠性更有信心。 在 Beta 阶段,我们对功能的整体设计充满信心,并期望能够以相对较少的更改将功能升级到稳定版。 在极少数情况下,API 可能需要进行破坏性更改,并且不受 semver 约束。

我们鼓励早期采用者使用 Beta API,以帮助我们获得对功能设计和稳定性的确定性。 根据您的风险承受能力,您可以根据自己的判断在生产环境中使用该功能。

当前处于 Beta 阶段的 API

实验性

实验性 API 缺乏达到稳定状态所需的基本功能。 该功能的设计被认为处于积极开发中,并且可能随时更改。

我们鼓励您在副项目、概念验证和其他稳定性非必要的环境中使用实验性 API 来帮助我们进行测试。 这使您有机会通过在功能开发过程中向核心团队提供早期反馈来帮助 API 的开发。 我们不建议在可靠性至关重要的环境中使用实验性 API。

当前处于实验性阶段的 API

已弃用

已弃用的 API 正在被删除的过程中。 我们计划删除的任何功能都将包含面向现有用户的文档,其中包含后续步骤以及有关何时删除该功能的信息。

当前已弃用的 API