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
姓名
亚历山大·莱昂
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

在你的终端界面中,选择你偏好的包管理器,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 成为您的首选构建工具。