Turborepo

升級

升級至 2.0

更新 turbo.json

開始將 1.x 升級至 2.0,請執行以下指令

終端機
npx @turbo/codemod migrate

這會更新您的 turbo.json(s),以處理從 1.x 到 2.0 的許多重大變更。

此外,如果工作區中的任何 package.json 沒有 name 欄位,則會新增該欄位。

注意事項

您也可以個別手動執行每個程式碼修改。請造訪程式碼修改頁面以取得更多資訊。

packageManager 欄位新增至根 package.json

packageManager 欄位是 Node.js 生態系統中的慣例,用於定義預期在工作區中使用的套件管理器。

Turborepo 2.0 要求您的工作區定義此欄位,以改善程式碼庫的穩定性和行為可預測性。如果您的根 package.json 中尚未有此欄位,請新增此欄位。

./package.json
{
+ "packageManager": "npm@10.8.1"
}

更新 eslint-config-turbo

eslint-config-turbo 有助於識別需要新增至 env 鍵以進行快取的環境變數。如果您正在使用它,請務必更新它以符合您的主要版本。

更新 turbo run 指令

Turborepo 2.0 包含 turbo run 指令行為的行為和正確性改進。以下是變更摘要,這些變更可能或可能不會影響您的程式碼庫

  • 環境變數的嚴格模式現在是預設模式,已從寬鬆模式變更 (PR)
    • → 如果您的任務中的腳本似乎缺少環境變數,您可以使用每個指令的 --env-mode 選項來選擇退出此行為,以逐步遷移。我們建議您更新任務中的 env,以說明其所有環境變數,以便您可以盡快捨棄 --env-mode 選項。
  • 工作區根目錄現在是所有套件的隱式依賴項 (PR)
    • → 存放庫的根目錄應盡可能少包含程式碼,因為根目錄的變更可能會影響存放庫中的所有任務。此外,如果您在工作區根目錄中使用內部套件,則這些依賴項的變更也會導致所有任務的快取遺失。在這兩種情況下,請考慮將程式碼移出根目錄,並移至套件中
  • 已移除 --ignore,改用 --filter 和以下圖表正確性變更 (PR)
  • 已移除 --scope 旗標 (自 1.2 版起已棄用) (PR)
  • package.json 中的 engines 欄位現在用於雜湊處理 (PR)
  • --filter 不再推斷套件名稱的命名空間 (PR)
  • 當沒有套件名稱或目錄符合時,--filter 現在會產生錯誤 (PR)
  • --only 會限制任務依賴項,而非套件依賴項 (PR)

小時

總計節省的運算量
開始使用
遠端快取 →

本頁內容