Turborepo 1.9

星期一,四月 11日,2023年
Greg Soltis
姓名
Greg Soltis
X
@gsoltis
Nathan Hammond
姓名
Nathan Hammond
Tom Knickman
姓名
Tom Knickman
X
@tknickman
Anthony Shew
姓名
Anthony Shew
X
@anthonysheww
Jared Palmer
姓名
Jared Palmer
X
@jaredpalmer
Mehul Kar
姓名
Mehul Kar
X
@mehulkar
Chris Olszewski
姓名
Chris Olszewski
Nicholas Yang
姓名
Nicholas Yang
X
@nicholaslyang
Alexander Lyon
姓名
Alexander Lyon
X
@_arlyon

Turborepo 1.9 专注于改进任务运行的可观测性,以更好地理解您的缓存行为

立即运行 npx @turbo/codemod migrate 进行更新。

查看和比较任务运行

您现在可以使用 --summarize 标志生成任务运行的 JSON 摘要

终端
turbo build --summarize

当启用此标志时,Turborepo 将在 .turbo/runs/ 中生成摘要,其中包含理解 turbo 如何解释您的任务配置和代码所需的所有信息。

终端
Tasks:    3 successful, 3 total
Cached:   0 cached, 3 total
Time:     1.707s
Summary:  /Users/acme/projects/acme/.turbo/runs/2Nn3X6nWDhP9ag8BnmivWRxHpHC.json

然后,您可以使用您最喜欢的 JSON 差异工具比较摘要,以了解您获得缓存命中或缓存未命中的原因。

文档中了解更多信息。

自带启动器

create-turbo 现在支持从任何官方 Turborepo 示例启动新项目。使用单个命令开始使用示例

终端
npx create-turbo@latest -e kitchen-sink

在您的终端 UI 中,选择您首选的包管理器,create-turbo 将自动将所选示例转换为您选择的包管理器。

此外,您可以将 create-turbo 与自定义仓库源一起使用,从而允许您重用自己的自定义启动器或来自社区的其他启动器

终端
npx create-turbo -e https://github.com/your-org/turbo-starter

严格环境 实验性功能

您现在可以使用 --env-mode=strict 标志来限制您的任务可以访问的环境变量。您的任务将仅了解您显式声明的变量,从而创建一个更安全的缓存环境。

strict 模式下,Turborepo 将传递在以下位置声明的环境变量

./turbo.json
{
  // Available to all tasks
  "globalPassThroughEnv": ["GLOBAL_VAR_1"],
 
  // Available to all tasks and invalidates caches
  "globalEnv": ["GLOBAL_VAR_2"],
 
  "pipeline": {
    "build": {
      // Only available to `build` tasks
      "passThroughEnv": ["VAR_1"],
 
      // Available to `build` task and invalidates caches
      "env": ["VAR_2"]
    }
  }
}

strict 模式下,此配置将仅向您的 build 任务公开四个环境变量,帮助您在开发过程中更早地发现缺少的变量。

--env-mode 也支持 looseinfer

文档中了解更多信息。

社区

自从发布 Turborepo v1.8 以来,我们看到了惊人的采用率和社区增长

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

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