Turborepo 1.8
Turborepo 1.8 透過提升 turbo
對於工作區的理解,為您的程式碼庫帶來更佳的彈性和更多控制權。
- 工作區配置:您現在可以在工作區中新增
turbo.json
配置檔案,以覆寫儲存庫中的根配置。 - 自動工作區範圍界定:全域
turbo
現在會自動推斷您目前的工作區,使其僅執行該工作區的任務。 - 更輕鬆的遷移:使用
npx @turbo/codemod migrate
自動遷移至新版本的turbo
。
立即執行 npx @turbo/codemod migrate
以進行更新。
工作區配置
在工作區目錄中,您現在可以新增 turbo.json
以
- 新增特定於該工作區的任務
- 覆寫任務的配置
這將使團隊能夠擴展其 Monorepo 中專案的所有權,從全域配置轉向對工作區中任務的細粒度控制。
例如,假設您的 Monorepo 具有 Next.js 應用程式和 SvelteKit 應用程式,並且您想要使用 Turborepo 來快取 build
任務的輸出。Next.js build
指令碼會建立 .next
目錄,而 SvelteKit 則會建立 .svelte-kit
目錄。您可以改為在工作區中定義 outputs
鍵,而不是在根目錄 outputs
中新增這兩個建置目錄
工作區配置中的 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 以來,我們看到了驚人的採用率和社群成長
- 超過 1.96 萬個 GitHub 星星
- 每週 98.7 萬次 NPM 下載
- 透過 Vercel 上的遠端快取,節省了 42 年的運算時間
Turborepo 是所有貢獻者(包括我們的核心團隊)共同努力的成果。
感謝您持續的支持、意見回饋和協作,使 Turborepo 成為您首選的建置工具。