支持策略
包管理器
核心 turbo 功能依赖于 JavaScript 生态系统中的包管理器及其对工作区和锁文件格式的实现。
| 包管理器 | 支持状态 |
|---|---|
| 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-64turbo-linux-arm64turbo-windows-64*turbo-windows-arm64*
Node.js
核心 turbo 功能不依赖于系统上的活动 Node.js 版本,但 Turborepo 生态系统中的一些包,如 create-turbo、turbo-ignore 和 eslint-config-turbo 确实依赖。对于这些功能,我们打算支持 Node.js 的活跃和维护 LTS 版本。
Turborepo 的示例也预期能在这些 Node.js 版本上工作。
版本控制
我们支持使用 Git 进行版本控制的仓库以及完全没有版本控制的仓库。任何其他版本控制系统都将被忽略。
请注意,我们使用 Git 来哈希文件,因此没有 git 的仓库可能会有不同的性能和行为。
LTS 策略
Turborepo 的主要版本将从下一个主要版本的发布日期起支持两年。
旧版本中关键安全修复所需的更改将被向后移植。这种情况很少见,并且将作为 semver-minor 版本发布,即使它们是破坏性更改。
我们强烈建议您尽可能使用最新版本的 Turborepo。
| 主要版本 | 发布日期 | 生命周期结束日期 |
|---|---|---|
| 2.x | 2024年6月4日 | |
| 1.x | 2021年12月9日 | 2026年6月4日 |
发布阶段
Turborepo 的稳定版本遵循语义版本控制(semver),并在发布前经过彻底测试。
Turborepo 还提供可能在开发的早期阶段发布的特定 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:
turbo queryturbo boundaries和 Tagsturbo watch的--experimental-write-cacheturbo ls --affected标志的--output=json
已弃用
已弃用的 API 正在被移除的过程中。我们打算移除的任何功能都将包含现有用户的文档,其中包含后续步骤和预期功能何时被移除的信息。
当前已弃用的 API:
TURBO_REMOTE_ONLY和--remote-only:使用TURBO_CACHE或 --cache