Turborepo 1.9

2023年4月11日,星期一
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 将传递在以下位置声明的环境变量

Turborepo logo
./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 成为您首选的构建工具。