返回博客

Turborepo 1.5

2022年9月19日,星期一
Matt Pocock
姓名
Matt Pocock
推特
@mattpocockuk
Greg Soltis
姓名
Greg Soltis
推特
@gsoltis
Nathan Hammond
姓名
Nathan Hammond
Tom Knickman
姓名
Tom Knickman
推特
@tknickman
Anthony Shew
姓名
Anthony Shew
推特
@anthonysheww
Jared Palmer
姓名
Jared Palmer
推特
@jaredpalmer
Mehul Kar
姓名
Mehul Kar
推特
@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 <任务> 通过 Turborepo CLI 运行任务。

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

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

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

Prune 现在支持 pnpm 和 yarn 2+

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

您可以使用 turbo prune 创建 monorepo 的修剪子集,该子集具有专用的锁定文件,其中包含给定目标应用程序及其依赖项所需的正确依赖项。这对于在 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 成为您首选的构建工具。