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 應用程式的配置

./turbo.json
{
  "$schema": "https://turbo.dev.org.tw/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 中包含許多環境變數。 這可能會使您的配置難以管理和維護。

透過萬用字元,您現在可以指定變數模式以包含在您的雜湊中。

./turbo.json
{
  "$schema": "https://turbo.dev.org.tw/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 成為您首選的建置工具。