Turborepo 1.10

2023年6月1日,星期四
Nathan Hammond
姓名
Nathan Hammond
Tom Knickman
姓名
Tom Knickman
X
@tknickman
Anthony Shew
姓名
Anthony Shew
X
@anthonysheww
Mehul Kar
姓名
Mehul Kar
X
@mehulkar

Turborepo 1.10 引入新功能,以改善您的本地开发体验

立即更新

终端
npx @turbo/codemod migrate

代码生成器

turbo-gen

Turborepo 生成器允许您以可预测的结构化方式向存储库添加新代码。以前,您需要自己复制代码并手动将依赖项添加到新的工作区。借助生成器,我们自动化了创建新工作区并将其集成到存储库中的过程。

您可以从头开始创建一个空白工作区复制现有的工作区,甚至创建自定义生成器以获得更多控制。自定义生成器利用 Plop 配置,这是一种在 JavaScript 生态系统中常用的模板定义策略。

自定义生成器 也可用于构建比工作区更细粒度的代码集。您可以显着加速以下任务,例如

运行以下命令开始使用您的第一个生成器

终端
turbo gen

有关更多信息,请查看文档

改进的环境变量输入

支持 .env 文件

.env 文件通常用于加载环境变量。当使用 turbo 运行时,这可能会导致问题,因为这些变量可能是不可见的,并且不易包含在任务的哈希中。这个问题可能会在本地工作时导致意外的缓存命中。

Turborepo 现在通过自动支持 .env 文件,使此操作变得更加容易。

为了确保 Turborepo 将这些变量包含在您的哈希中,请使用 dotEnv 键。例如,以下是 Next.js 应用程序的配置

Turborepo logo
./turbo.json
{
  "$schema": "https://turbo.net.cn/schema.json",
  "globalDotEnv": [".env"],
  "pipeline": {
    "build": {
      "dotEnv": [
        ".env.production.local",
        ".env.local",
        ".env.production",
        ".env"
      ]
    },
    "dev": {
      "dotEnv": [
        ".env.development.local",
        ".env.local",
        ".env.development",
        ".env"
      ]
    },
    "test": {
      "dotEnv": [".env.test.local", ".env.test", ".env"]
    }
  }
}

此功能处理系统环境变量。如果您在开发环境之外不使用 .env 文件,请确保您的环境变量仍然在 envglobalEnv 中枚举,以确保它们包含在您的哈希中。

有关更多信息,请查看文档

环境变量通配符

大型应用程序最终可能会在 turbo.json 中包含许多环境变量。这会使您的配置难以管理和维护。

借助通配符,您现在可以指定变量模式以包含在您的哈希中。

Turborepo logo
./turbo.json
{
  "$schema": "https://turbo.net.cn/schema.json",
  "pipeline": {
    "build": {
      "env": ["ACME_*"]
    }
  }
}

有关更多信息,请查看文档

环境模式

Turborepo 环境模式现在已退出实验模式,可供通用使用。

默认情况下,以及当使用 --env-mode=loose 调用 turbo run 时,计算机上的所有环境变量都可用于每个 Turborepo 任务。这确保了最大的兼容性,同时接受某些风险,即任务将隐式访问未在您的 turbo.json 中指定的环境变量。

在新的严格模式下,当使用 --env-mode=strict 调用 turbo 时,只有重要的系统环境变量turbo.json 内部枚举的环境变量才可用于任务。

有关更多信息,请查看文档

社区

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

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

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