Turborepo 2.2
Turborepo 2.2 帶來了新的 repository query 命令,以及其他改進,包括
- Repository queries 實驗性功能:以前所未有的方式探索您的 repository,使用
turbo query
- 改進的快取安全性:輕鬆診斷和修復遺失的環境變數依賴性,以及不正確的快取配置
- 受影響套件的零配置比較:在 GitHub 工作流程中自動鎖定變更的套件
立即執行 npx @turbo/codemod migrate
以更新,或使用 npx create-turbo@latest
開始使用。
查詢您的 repository 實驗性功能
在 Turborepo 2.2 中,我們推出了 turbo query
——一個新的命令,允許針對 Turborepo 的 repository 資料執行 GraphQL 查詢。Turborepo 計算關於您的 repository 的大量資料,以便以最高的效率執行您的任務。這包括您的套件依賴圖、已變更的套件、任務依賴性、來自您任務的日誌輸出等等。這些資料對於腳本編寫、重構、確定在 CI 中要執行的內容以及發現關於您的程式碼庫的其他見解非常有用。
若要開始使用,請執行 turbo query
以開啟 GraphiQL——一個用於編寫 GraphQL 查詢的本機 IDE,支援互動式架構探索、文件和傳送查詢。
您也可以直接將查詢作為字串或檔案路徑傳遞
範例
取得所有具有 test
任務的 受影響套件的名稱和路徑。
取得特定套件及其直接依賴項。
尋找所有具有超過 10 個直接依賴項的套件。
Turborepo 過去已為結構化資料新增 API,例如 run summaries、dry run 和 ls
。但是,這些 API 有一些限制。首先,它們以單次執行為中心,而不是一般的 repository 資訊。其次,隨著我們新增更多欄位,輸出很快變得非常龐大。我們需要一種以與執行無關的方式查詢 repository 資料的方法,並使傳回的資料更可自訂。
我們要感謝 @maschwenk、@rafaeltab 和 @weyert 對此功能提供的早期回饋。
若要瞭解更多資訊,請造訪文件,並在 turbo query
RFC 上留下對此新實驗性命令的回饋。
改進的快取安全性
快取任務是 Turborepo 最強大的功能之一,僅重新執行已變更的內容即可加速建置和其他任務。透過 Turborepo 2.2,我們發布了一些改進,以協助配置快取輸入和輸出,並在情況看起來不太正確時向您發出警告。
平台環境變數
當部署您的應用程式時,您可能已經在生產環境中配置了環境變數。現在,對於支援的平台,Turborepo 將自動檢查這些環境變數與您的 turbo.json
配置,以確保您已正確地 將它們納入考量,並將警告您任何遺失的環境變數。
任何平台都可以透過在建置環境中實作 TURBO_PLATFORM_ENV
環境變數來支援此功能。
Vercel 今天已獲得支援,隨著更多平台可用,我們將更新文件。
深入瞭解平台環境變數。
空快取配置的警告
當執行任務時,如果任務配置為快取空目錄,Turborepo 現在將警告您。這可能是一個常見的錯誤,並可能導致意外的建置中斷。這在 2.2 中預設為啟用。
深入瞭解配置輸出。
eslint-config-turbo
的改進
Turborepo 會自動為 常見框架 的 env 鍵新增前綴萬用字元。如果您正在使用其中一個支援的框架,則無需指定以框架前綴開頭的環境變數。
現在在 Turborepo 2.2 中,eslint-config-turbo
也支援此功能,確保來自外掛程式的警告是準確且可操作的。
深入瞭解eslint-config-turbo
。
使用 --affected
進行零配置比較
在 Turborepo 2.1 中,我們發布了 --affected
旗標,該旗標可以與 turbo run
和 turbo ls
一起使用,以自動鎖定變更的套件。在 2.2 中,我們更進一步,在 GitHub 工作流程中執行 --affected
時引入自動比較——使常見用例更加智慧。
- 對於回應 pull request 而執行的工作流程,比較的基準會自動設定為 pull request 的基準。這確保
turbo
在判斷受影響的套件時,會考量 pull request 中變更的任何檔案。 - 對於回應 push 而執行的工作流程,比較的基準會自動設定為您最新 push 之前的 commit。
深入瞭解--affected
。
社群
自發布 Turborepo 2.1 以來,我們看到了驚人的採用率和社群成長
- 超過 26.2k+ GitHub 星星
- 每週超過 3.2M+ 次 NPM 下載
- 透過 Vercel 上的遠端快取,節省了 477 年的計算時間
Turborepo 是所有貢獻者(包括我們的核心團隊)共同努力的成果。
檢視完整的變更日誌。
感謝您持續的支持、回饋和協作,使 Turborepo 成為您首選的建置工具。