Turborepo 2.2
Turborepo 2.2 帶來了一個新的程式碼庫查詢命令,以及其他改進,包括
- 程式碼庫查詢 實驗性:使用
turbo query
以全新的方式探索您的程式碼庫 - 改進的快取安全性:輕鬆診斷和修復遺失的環境變數依賴項和不正確的快取設定
- 受影響套件的零配置比較:在 GitHub 工作流程中自動鎖定有變更的套件
立即執行 npx @turbo/codemod migrate
更新,或使用 npx create-turbo@latest
開始使用。
查詢您的程式碼庫 實驗性
在 Turborepo 2.2 中,我們引入了 turbo query
— 一個新的命令,允許針對 Turborepo 的程式碼庫資料執行 GraphQL 查詢。Turborepo 會計算大量關於您程式碼庫的資料,以便以最高的效率執行您的任務。這包括您的套件依賴關係圖、變更的套件、任務依賴關係、任務的日誌輸出等等。這些資料對於腳本編寫、重構、確定在 CI 中執行什麼以及發現程式碼庫的其他見解都非常有用。
若要開始使用,請執行 turbo query
以開啟 GraphiQL — 一個用於編寫 GraphQL 查詢的本機 IDE,支援互動式綱要探索、文件和傳送查詢。
您也可以直接將查詢作為字串或檔案路徑傳遞
範例
取得所有具有 test
任務的受影響套件的名稱和路徑。
取得特定的套件及其直接依賴項。
找出所有具有超過 10 個直接依賴項的套件。
Turborepo 過去曾為結構化資料新增 API,例如執行摘要、模擬執行和ls
。但是,這些 API 有一些限制。首先,它們以單次執行為中心,而不是一般的程式碼庫資訊。其次,隨著我們新增更多欄位,輸出很快就變得非常龐大。我們需要一種以與執行無關的方式查詢程式碼庫資料,並使傳回的資料更具可自訂性。
我們要感謝 @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
時引入自動比較來更進一步,使常見的用例更加智慧化。
- 對於響應提取請求而執行的工作流程,比較的基礎會自動設定為提取請求的基礎。這可確保
turbo
在判斷受影響的套件時會考量提取請求中變更的任何檔案。 - 對於響應推送而執行的工作流程,比較的基礎會自動設定為您上次推送之前的提交。
深入瞭解 --affected
。
社群
自發布 Turborepo 2.1 以來,我們看到了令人難以置信的採用率和社群成長
- 26.2k+ 個 GitHub 星星
- 每週 320 萬+ 次 NPM 下載
- 透過 Vercel 上的遠端快取節省了 477 年的運算時間
Turborepo 是所有貢獻者(包括我們的核心團隊)共同努力的成果。
檢視完整的變更日誌。
感謝您持續的支持、回饋和合作,使 Turborepo 成為您首選的建置工具。