操作系统
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-turbo
、turbo-ignore
和 eslint-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 命令的故意行为更改。这些应该在次要版本中发布。如果更改足够大或具有破坏性,我们可能会包含标志来选择加入之前的行为。