工程開發
turborepo avatar

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
在 GitHub 查看