返回部落格

Turborepo 2.0

2024 年 6 月 4 日,星期二
Chris Olszewski
姓名
Chris Olszewski
Nicholas Yang
姓名
Nicholas Yang
X
@nicholaslyang

Turborepo 2.0 改善了 JavaScript 和 TypeScript 程式碼倉庫的開發者體驗,其功能包括

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

請造訪升級指南以取得更新說明。下方列出重大變更

新的終端 UI

Turborepo 1.13中,我們發布了一個實驗性介面,以了解精簡的終端 UI 如何提高開發速度。透過RFC 程序,我們能夠與社群合作,根據您的回饋設計改版的本地體驗。感謝參與者的貢獻。

今天,我們將發布新的 UI 作為穩定版本,以及它所啟用的備受期待的功能。

提高日誌的清晰度

在 2.0 版本之前,當您處理程式庫和應用程式時,turbo 會將日誌作為串流輸出。這有時可能會讓人感到不知所措,因為混雜的日誌讓人難以理解特定任務的進展。

在此版本的 UI 中,您可以使用方向鍵選擇個別任務,一次檢查一個任務的日誌,使其更容易閱讀您想要關注的日誌。

注意事項

先前版本的 turbo 中的串流日誌檢視仍可透過使用 --log-order 旗標用於本地開發。請注意,使用此選項時,任務將無法互動,某些工具可能會意外清除終端。

互動式任務

許多工具允許與指令碼互動以實現重要的功能。但是,在先前版本的 Turborepo 中,您的指令碼被困在 turbo 內,因此您無法與它們互動。

您現在可以進入個別任務的 shell,並透過直接在介面中輸入來將輸入傳遞給您的指令碼 (透過 stdin)。這可以啟用諸如使用 JestVitest 執行特定測試套件、使用 DrizzlePrisma 處理資料庫遷移等等工作流程。

若要將任務標記為互動式,請將 "persistent": true 新增至其定義

./turbo.json
{
  "tasks": {
    "dev": {
      "cache": false,
      "persistent": true
    }
  }
}

在 UI 中選取任務後,使用 Enter 鍵進入任務的 shell,並使用 CTRL+Z 退出。

若要了解有關持久和互動式任務的更多資訊,請造訪文件

監看模式

Turborepo 一次執行多個任務的能力可讓您獲得更緊密的意見反應迴路,協助您更快發布。若要在本地工作時充分利用 Turborepo 的平行處理能力,您的工具需要具有可用的「監看器」功能,以便在您進行變更時重新執行程式碼。遺憾的是,許多常見工具沒有此功能,而且大多數工具都不具備單程式碼倉庫感知能力,導致依賴程式碼倉庫中其他指令碼的指令碼出現問題。

今天,我們將發布監看模式,將此功能引入您的所有工具中

終端
turbo watch dev lint test

使用 turbo watch 時,只要您變更原始碼,Turborepo 就會重新執行任務。任務將使用您的依賴圖表和來自 turbo.json 的組態來執行,就像 turbo run 一樣。

請在文件中了解有關監看模式的更多資訊。

全新的文件

在此版本中,我們也發布了重新設計的文件,以先前版本的優點為基礎。我們已聽取您的意見反應,因此文件現在包含

請造訪 Turborepo 文件。

重大變更

請造訪升級指南,以取得如何更新至 2.0 的說明。

組態

可以使用 npx @turbo/codemod migrate 更新 turbo.json 的重大變更。

正確性

其他

社群

我們很高興看到 Turborepo 的持續成長和採用

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

感謝您持續的支持、意見反應和協作,使 Turborepo 成為您的首選建置工具。如果您尚未加入,請在GitHubDiscord 上加入對話。