Turborepo 1.8
Turborepo 1.8 通过改进 turbo
对你的工作区的理解,为你的代码库带来了更好的灵活性和更多的控制。
- 工作区配置:你现在可以在工作区中添加一个
turbo.json
配置文件,以覆盖存储库中的根配置。 - 自动工作区范围界定:全局
turbo
现在会自动推断你当前的工作区,以便它只运行该工作区的任务。 - 更轻松的迁移:使用
npx @turbo/codemod migrate
自动迁移到新版本的turbo
。
立即运行 npx @turbo/codemod migrate
进行更新。
工作区配置
在工作区目录中,你现在可以添加一个 turbo.json
来
- 添加特定于该工作区的任务
- 覆盖任务的配置
这将使团队能够通过从全局配置转向对工作区中的任务进行细粒度控制来扩展对其 monorepo 中项目的所有权。
例如,假设你的 monorepo 有一个 Next.js 应用程序和一个 SvelteKit 应用程序,并且你想使用 Turborepo 来缓存 build
任务的输出。Next.js build
脚本创建一个 .next
目录,而 SvelteKit 创建一个 .svelte-kit
目录。你可以不在根目录的 outputs
中添加这两个构建目录,而是在工作区中定义 outputs
键
工作区配置中的 extends
键使工作区所有者能够利用根 turbo.json
的优点,并自定义使其应用程序不同的部分(如果你习惯于从根目录定义要运行的任务,那么 "//"
符号会很熟悉)。
声明的键将替换根目录中的键(如果这些键存在),从而覆盖你在根配置中定义的内容。未声明的键将从根配置继承。
在上面的示例中,outputs
为两个应用程序自定义,而 dependsOn
由根 turbo.json
配置,并保持为 "^codegen"
。
自动工作区范围界定
在 Turborepo v1.7 中,turbo
成为全局可安装的,使你能够从代码库中的任何位置运行你的任务。但是,turbo
仍然会从根目录运行任务,从而在其他你可能不想运行的任务的工作区中运行任务。
在 1.8 中,turbo
将自动检测你所在的工作区,并生成 --filter
语法,以将你的任务范围限定到该工作区。
例如,如果你的当前目录是 apps/admin
,并且你使用 turbo build
命令,那么 turbo
将在后台运行 turbo build --filter=admin
,从而专注于你正在处理的工作区。
更轻松的迁移
升级 Turborepo 版本时,不再需要按正确的顺序手动运行各个 codemod。@turbo/codemod
现在提供了一个简单的 migrate
命令,该命令既可以将你的存储库升级到指定的 turbo
版本(默认为 latest
),又会运行任何必需的 codemod。
立即使用 npx @turbo/codemod migrate
尝试一下。
社区
自从发布 Turborepo v1.7 以来,我们看到了惊人的采用和社区发展
- 19.6k+ GitHub 星标
- 每周 98.7 万次 NPM 下载
- 通过 Vercel 上的远程缓存节省了 42 年的计算时间
Turborepo 是其所有贡献者(包括我们的核心团队)共同努力的结果。
感谢你们持续的支持、反馈和协作,使 Turborepo 成为你们首选的构建工具。