Turborepo 1.8

2023年2月22日 星期三
Greg Soltis
姓名
Greg Soltis
X
@gsoltis
Nathan Hammond
姓名
Nathan Hammond
Tom Knickman
姓名
Tom Knickman
X
@tknickman
Anthony Shew
姓名
Anthony Shew
X
@anthonysheww
Jared Palmer
姓名
Jared Palmer
X
@jaredpalmer
Mehul Kar
姓名
Mehul Kar
X
@mehulkar
Chris Olszewski
姓名
Chris Olszewski
Nicholas Yang
姓名
Nicholas Yang
X
@nicholaslyang
Alexander Lyon
姓名
Alexander Lyon
X
@_arlyon

Turborepo 1.8 透過提升 turbo 對於工作區的理解,為您的程式碼庫帶來更佳的彈性和更多控制權。

立即執行 npx @turbo/codemod migrate 以進行更新。

工作區配置

在工作區目錄中,您現在可以新增 turbo.json

這將使團隊能夠擴展其 Monorepo 中專案的所有權,從全域配置轉向對工作區中任務的細粒度控制。

例如,假設您的 Monorepo 具有 Next.js 應用程式和 SvelteKit 應用程式,並且您想要使用 Turborepo 來快取 build 任務的輸出。Next.js build 指令碼會建立 .next 目錄,而 SvelteKit 則會建立 .svelte-kit 目錄。您可以改為在工作區中定義 outputs 鍵,而不是在根目錄 outputs 中新增這兩個建置目錄

turbo.json
{
  "pipeline": {
    "build": {
      "dependsOn": ["^codegen"]
      // no need to define outputs here!
    }
  }
}
apps/my-nextjs-app/turbo.json
{
  "extends": ["//"],
  "pipeline": {
    "build": {
      // dependsOn is inherited from root
      "outputs": [".next/**", "!.next/cache/**"]
    }
  }
}
apps/my-sveltekit-app/turbo.json
{
  "extends": ["//"],
  "pipeline": {
    "build": {
      // dependsOn is inherited from root
      "outputs": [".svelte-kit/**"]
    }
  }
}

工作區配置中的 extends 鍵使工作區擁有者能夠使用根目錄 turbo.json 的最佳部分,並自訂使其應用程式與眾不同的部分(如果您習慣從根目錄定義要執行的任務,則 "//" 符號會看起來很熟悉)。

已宣告的鍵將取代根目錄中的鍵(如果這些鍵存在),從而覆寫在根配置中定義的內容。未宣告的鍵則繼承自根配置。

在上面的範例中,outputs 針對這兩個應用程式進行了自訂,而 dependsOn 則由根目錄 turbo.json 配置,並保持為 "^codegen"

在文件中了解更多資訊.

自動工作區範圍界定

Turborepo v1.7 中,turbo 變為全域可安裝,讓您能夠從程式碼庫中的任何位置執行任務。但是,turbo 仍然會從根目錄執行任務,從而在您可能不打算執行的其他工作區中執行任務。

在 1.8 版本中,turbo 將自動偵測您所在的工作區,並產生 --filter 語法,以將您的任務範圍界定到該工作區。

例如,如果您的目前目錄是 apps/admin,並且您使用 turbo build 命令,則 turbo 將在幕後執行 turbo build --filter=admin,重點放在您正在處理的工作區上。

更輕鬆的遷移

升級 Turborepo 版本時,不再需要以正確的順序手動執行個別的程式碼模組。@turbo/codemod 現在提供了一個簡單的 migrate 命令,該命令既將您的儲存庫升級到指定的 turbo 版本(預設為 latest),執行任何需要的程式碼模組。

立即使用 npx @turbo/codemod migrate 試用。

社群

自發布 Turborepo v1.7 以來,我們看到了驚人的採用率和社群成長

Turborepo 是所有貢獻者(包括我們的核心團隊)共同努力的成果。

感謝您持續的支持、意見回饋和協作,使 Turborepo 成為您首選的建置工具。