Turborepo 1.5

2022年9月19日,星期一
Matt Pocock
姓名
Matt Pocock
X
@mattpocockuk
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

Turborepo 1.5 是我们在文档和开发者体验方面迈出的一大步,同时也为 turbo prune 带来了重大改进

立即运行 npm install turbo@latest 来更新。

Monorepo 手册

首次设置 Monorepo 通常意味着要了解许多新概念。你需要理解工作区、包安装、代码共享和依赖管理 - 以及更多。

这通常意味着想要从头开始设置 Monorepo 的人们必须从不同的文档站点拼凑信息。首先是 pnpm,然后是 tsup,然后回到 changesets,最后回到 Turborepo 作为甜点。

我们希望通过 Monorepo 手册 填补这个空白。我们构建了关于如何集成你所需的所有工具以使你的 Monorepo 顺利运行的指南,包括以下方面的指南

移除 run

你现在可以使用 turbo <task> 通过 Turborepo CLI 运行任务。

终端
- turbo run build
+ turbo build
 
 
- turbo run lint build test
+ turbo lint build test

如果你的任务名称与内置的 turbo 子命令冲突,我们将运行我们的子命令。这意味着你不应该将你的任务命名为诸如 prunerunlogin 之类的名称 - 因为这些是内置的子命令。

turbo run <task> 将继续工作,并且没有计划弃用它。

Prune 现在支持 pnpm 和 yarn 2+

我们很高兴地宣布 turbo prune 现在支持 pnpm、yarn 和 yarn 2+。

你可以使用 turbo prune 创建你的 Monorepo 的修剪子集,其中包含专用的 lockfile--以及给定目标应用程序及其依赖项所需的正确依赖项。这对于在 Docker 镜像中高效使用 Turborepo 特别有用。

作为新手册的一部分,我们还添加了一个关于使用 turbo prune构建 docker 镜像 的章节。

查看我们之前的 关于 prune 的博客 以了解更多信息。

turbo.json 中的环境变量

我们在 turbo.json 中引入了两个新键 - envglobalEnv。这些允许与任务分离配置环境变量

turbo.json
{
  "globalDependencies": [
-   "$DATABASE_URL"
  ],
+ "globalEnv": [
+   "DATABASE_URL"
+ ],
  "pipeline": {
    "build": {
      "dependsOn": [
-       "$BUILD_ENV"
      ],
+     "env": [
+       "BUILD_ENV"
+     ]
    }
  }
}

globalEnvenv 允许你指定不带 $ 前缀的环境变量列表。这使得配置文件更易于阅读。在 我们更新的文档 中阅读更多内容。

为了帮助从以前的语法迁移,我们准备了一个 codemod。你可以运行 npx @turbo/codemod migrate-env-var-dependencies

这项工作建立在我们 1.4.0 版本中添加的 自动环境变量检测 之上。

package.json 哈希的更改

每个工作区中的 package.json 文件现在始终被视为该工作区中任务的输入。这意味着如果你更改了 package.json 中任务的定义,我们希望使来自先前定义的任何缓存失效。

根目录中的 package.json 也是如此。对根 package.json 的更改将使根工作区中的任务失效。

这有助于使 Turborepo 的缓存更智能一些,并且不太可能在任务定义更改时出错。

社区

自从 8 月发布 Turborepo v1.4 以来,我们看到了令人难以置信的采用和社区增长

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

此版本由以下贡献者贡献:@7flash, @afady, @alexander-young, @atilafassina, @bguedes-moz, @bobaaaaa, @brunojppb, @chris-olszewski, @DoctorJohn, @erj826, @futantan, @gsoltis, @HosseinAgha, @ivov, @jaredpalmer, @joelhooks, @knownasnaffy, @laurentlucian, @leerob, @MarceloAlves, @mattpocock, @mauricekleine, @mehulkar, @Misikir, @nareshbhatia, @nathanhammond, @pakaponk, @PhentomPT, @renovate, @ruisaraiva19, @samuelhorn, @shemayas, @shuding, @t-i-0414, @theurgi, @tknickman, @yanmao-cc, 以及更多!

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