turborepo
適用於 JavaScript/TypeScript monorepo 的高效能構建系統。針對平行任務執行、遠端快取與依賴圖分析進行了最佳化。
簡介
Turborepo 是一個基於 Rust 的複雜構建系統,旨在優化大型 JavaScript 和 TypeScript monorepo 中的開發工作流程與 CI/CD 管道。透過利用智慧型依賴圖分析,它能實現任務的平行執行,並透過本地與遠端快取機制大幅減少構建時間。此工具專為管理複雜專案結構的開發人員所設計,在多個應用程式與共享套件共存的環境下展現高效能。無論是處理代碼檢查、測試或資產構建,Turborepo 都能確保僅有必要的代碼被重新處理,從而隨著程式庫的增長保持高開發速度。
-
使用檔案系統與遠端快取的增量構建,跳過未變更代碼的冗餘工作。
-
由自定義任務依賴圖驅動的平行任務執行,嚴格遵循內部套件關係。
-
內建 monorepo 邊界強制執行功能,允許團隊根據預定義標籤限制套件之間的匯入。
-
透過環境變數雜湊、受影響檔案偵測以及與 Vercel 遠端快取的整合,實現原生的 CI/CD 最佳化。
-
用於視覺化依賴圖與監控任務執行效能的即時開發工具。
-
支援在 turbo.json 中定義複雜的任務管線,實現跨工作區的建置、代碼檢查與測試指令碼的無縫編排。
-
務必優先在 package.json 中設定套件專屬任務,而非根目錄腳本,以最大化 Turborepo 的平行化能力。
-
在 package.json 與 CI 腳本中使用 'turbo run <task>' 以確保一致的行為,僅將 'turbo <task>' 用於終端機命令列。
-
利用 --affected 旗標僅針對受最近代碼變更影響的套件執行目標構建與測試,而非重建整個儲存庫。
-
在 turbo.json 中配置嚴格的環境變數過濾,防止不穩定或非決定性的輸入導致快取汙染。
-
確保所有構建輸出都在任務配置中明確定義,以便引擎能正確地從快取中還原它們。
-
使用 --summarize 或 --dry 旗標監控快取命中率並偵錯雜湊衝突,以完善您的快取輸入配置。
倉庫統計
- Star 數
- 30,289
- Fork 數
- 2,316
- Open Issue 數
- 34
- 主要語言
- Rust
- 預設分支
- main
- 同步狀態
- 閒置
- 最近同步時間
- 2026年5月3日 上午04:58