Turborepo 2.3

2024年11月14日 星期二
Chris Olszewski
姓名
Chris Olszewski
Nicholas Yang
姓名
Nicholas Yang
X
@nicholaslyang
Anthony Shew
姓名
Anthony Shew
X
@anthonysheww

Turborepo 2.3 引入多項人體工學改進

立即執行 npx @turbo/codemod migrate 以進行更新,或使用 npx create-turbo@latest 開始使用。

Boundaries RFC

Monorepos 解鎖更快的迭代速度和驚人的靈活性,但也帶來新的挑戰

這些只是在 monorepos 中建構時一個關鍵問題的幾個例子:我們如何溝通和強制執行工作區的結構完整性?

在發布此文章時,Boundaries RFC 僅為初步草案。以下描述的實作可能會變更。有關最新資訊,請參閱 RFC 本身。

Boundaries RFC 是我們針對此問題的初步提案。在我們目前的方法中,我們希望您能夠以單行程式碼逐步採用 Boundaries

turbo.json
{
  "boundaries": true
}

此外,我們希望建立一個標記系統,以便您可以使用自訂 Boundaries 標記網域、關注點、上下文和其他有用的metadata。

apps/ui/turbo.json
{
  "extends": ["//"],
  "boundaries": {
    "tags": ["library", "ui", "frontend", "beta"],
    "allowDependencyOn": ["library", "frontend"],
    "denyDependencyFrom": ["backend", "stable"]
  }
}

我們也計劃讓您能夠使用標記允許現有的診斷

終端機
turbo boundaries --exclude-errors

這樣,您可以為新程式碼強制執行 Boundaries,並逐步修正現有問題。

我們期待聽到您對 Boundaries RFC 的想法和回饋。

Package task shortcuts

您現在可以使用完全合格的任務識別符執行任務

終端機
turbo run web#build

這比使用 --filter (turbo run build --filter=web) 的等效命令更方便,如果您有多個想要鎖定的任務,則可以更精確

終端機
turbo run web#build docs#lint

在文件中了解更多資訊。

Simplified cache control

先前,--remote-only--no-cache 標記用於管理輸出工件的來源和快取。但是,我們已經看到它們可能會造成混淆,並且在讀取和寫入本機和遠端快取方面存在控制上的差距。

為了改進這一點,我們引入了一個新的 --cache 標記,它將這些標記結合在一起 - 並提供更多功能。

終端機
turbo run build --cache=local:rw,remote:r

使用 localremote,您可以控制 turbo 調用的讀取和寫入行為。在文件中了解更多資訊。

持續改進 turbo query

在 2.2 中,我們引入了 turbo query,這是一個旨在利用 Turborepo 對您的套件和任務圖的了解來檢查您的儲存庫的功能。我們已在此功能上進一步迭代,為您提供更強大的查詢

社群

自發布 Turborepo 2.2 以來,我們看到了巨大的採用率和社群成長

Turborepo 是其所有貢獻者共同努力的成果,包括我們的核心團隊:AnthonyChrisNicholasTom

感謝您持續的支持、回饋和協作,使 Turborepo 成為您首選的建構工具。