Turborepo 1.8
Turborepo 1.8 透過改進 turbo
對工作區的理解,為您的程式碼庫帶來更好的靈活性和更多控制。
- 工作區配置:您現在可以在工作區中新增
turbo.json
配置檔案,以覆寫儲存庫中的根配置。 - 自動工作區範圍設定:全域
turbo
現在會自動推斷您目前的工作區,使其僅執行該工作區的任務。 - 更輕鬆的移轉:使用
npx @turbo/codemod migrate
自動移轉至新版本的turbo
。
立即執行 npx @turbo/codemod migrate
來更新。
工作區配置
在工作區目錄中,您現在可以新增一個 turbo.json
以
- 新增特定於該工作區的任務
- 覆寫任務的配置
這將使團隊能夠擴展對單體儲存庫中專案的所有權,從全域配置轉向對工作區中任務的精細控制。
例如,假設您的單體儲存庫有一個 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 版本時,不再需要手動按正確順序執行個別的 codemod。@turbo/codemod
現在提供一個簡單的 migrate
命令,該命令既會將您的儲存庫升級到指定的 turbo
版本(預設為 latest
),也會執行所需的任何 codemod。
立即使用 npx @turbo/codemod migrate
試用看看。
社群
自發佈 Turborepo v1.7 以來,我們看到了驚人的採用率和社群成長
- 19.6k+ 個 GitHub 星星
- 每週 987k 次 NPM 下載
- 透過 Vercel 上的遠端快取,節省了 42 年的計算時間
Turborepo 是所有貢獻者(包括我們核心團隊)共同努力的成果。
感謝您持續不斷的支持、回饋和協作,讓 Turborepo 成為您首選的建置工具。