Turborepo 2.3

2024年11月14日,星期二
Chris Olszewski
姓名
Chris Olszewski
Nicholas Yang
姓名
Nicholas Yang
X
@nicholaslyang
Anthony Shew
姓名
Anthony Shew
X
@anthonysheww

Turborepo 2.3 引入多项人体工程学改进

立即运行 npx @turbo/codemod migrate 更新,或使用 npx create-turbo@latest 开始使用。

边界 RFC

Monorepo 解锁了更快的迭代速度和惊人的灵活性,但也引入了新的挑战

这些只是在 Monorepo 中构建时的一个关键问题的几个例子:我们如何沟通和执行工作区结构完整性?

在发布这篇文章时,“边界 RFC” 只是一个初步草案。下面描述的实现可能会发生变化。有关最新信息,请参阅 RFC 本身。

边界 RFC 是我们针对此问题的初步提案。在我们目前的方法中,我们希望您能够在一行代码中逐步采用边界

Turborepo logo
turbo.json
{
  "boundaries": true
}

此外,我们希望创建一个标记系统,以便您可以使用自定义边界标记域、关注点、上下文和其他有用的元数据。

Turborepo logo
apps/ui/turbo.json
{
  "extends": ["//"],
  "boundaries": {
    "tags": ["library", "ui", "frontend", "beta"],
    "allowDependencyOn": ["library", "frontend"],
    "denyDependencyFrom": ["backend", "stable"]
  }
}

我们还计划让您能够使用标志来允许列出已有的诊断信息

终端
turbo boundaries --exclude-errors

这样,您可以为新代码强制执行边界,并逐步修复现有问题。

我们期待听到您对 边界 RFC 的想法和反馈。

软件包任务快捷方式

您现在可以使用完全限定的任务标识符运行任务

终端
turbo run web#build

这比使用 --filter (turbo run build --filter=web) 的等效命令更方便,如果您有多个想要定位的任务,则可以更精确

终端
turbo run web#build docs#lint

在文档中了解更多信息。

简化的缓存控制

以前,--remote-only--no-cache 标志用于管理输出工件的源和缓存。但是,我们已经看到它们可能会引起混淆,并且在读取和写入本地和远程缓存方面存在控制方面的差距。

为了改进这一点,我们引入了一个新的 --cache 标志,它将这些标志结合在一起 - 并提供了更强大的功能。

终端
turbo run build --cache=local:rw,remote:r

使用 localremote,您可以控制 turbo 调用的读取和写入行为。在文档中了解更多信息。

持续改进 turbo query

在 2.2 中,我们引入了 turbo query,这是一个旨在利用 Turborepo 对您的软件包和任务图的了解来检查您的存储库的功能。我们已在此功能上进一步迭代,为您提供更强大的查询

社区

自从发布 Turborepo 2.2 以来,我们看到了巨大的采用率和社区增长

Turborepo 是其所有贡献者(包括我们的核心团队:AnthonyChrisNicholasTom)共同努力的成果。

感谢您的持续支持、反馈和协作,使 Turborepo 成为您的首选构建工具。