回到部落格

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 成為您首選的建置工具。