Turborepo 1.3
Turborepo 1.3 版本帶來了改進的快取和彈性,其中包括
- 受限的雜湊輸入: 使用
inputs
指定套件資料夾中影響快取的檔案。 - 從單一程式碼倉庫的根目錄執行和快取腳本: 從單一程式碼倉庫的根目錄執行和快取
package.json
腳本。 - 新的 CI/CD 食譜: 我們增加了將 Turborepo 與熱門 CI 提供者搭配使用的食譜。
立即執行 npm install turbo@latest
來更新。
Pipeline inputs
除了環境變數、相依性和管線設定之外,turbo
在計算每個 package.json
腳本的雜湊指紋(turbo
用於索引其快取並確定是否需要重新執行腳本的索引鍵)時,將會考慮套件資料夾中所有未被 git 忽略的檔案。在 Turborepo 1.3+ 版本中,您現在可以在 turbo.json
的 pipeline
中指定 inputs
的 glob 模式,以控制特定腳本的相關快取檔案。 這表示您現在可以在 turbo.json
中表達以下內容
- 忽略套件或應用程式資料夾中所有 markdown 檔案的變更。
- 如果只有測試檔案發生變更,則無需重新建置應用程式。
- 只有在套件或資料夾中的原始碼檔案或測試檔案發生變更時,才重新執行測試。
- 以及更多。
讓我們來看一個具體的例子:假設我們有一個單一程式碼倉庫,其中包含一個位於 ./apps/docs-site
的 Next.js 應用程式,用於文件網站、一些套件和 ./docs
資料夾中位於單一程式碼倉庫根目錄的一些 markdown 檔案。
假設 Next.js docs-site
會呈現 ./docs
資料夾中的 markdown 檔案。我們現在可以在應用程式的 package.json
中設定 build
腳本,以使用 turbo.json
中的 inputs
來更好地指定哪些檔案是相關的(以及哪些檔案會影響快取),如下所示
注意:與 outputs
一樣,inputs
是相對於相關的 package.json
定義的,但它們可以位於給定資料夾之外 (例如 ../../docs/**
)。
從單一程式碼倉庫的根目錄執行和快取腳本
從 1.3 版本開始,turbo
現在可以執行和快取位於單一程式碼倉庫根目錄的 package.json
檔案中的腳本,這將在遷移到 Turborepo 時有很大的幫助。
若要設定此功能,請在 turbo.json
中使用 "//#<script>": {...}
的形式在 pipeline
設定中指定根腳本。//
會告知 turbo
該腳本是相對於單一程式碼倉庫的根目錄,而不是每個工作區套件。
關於根腳本和執行範圍,有 2 個重要的注意事項
- 如果您在
pipeline
中已經有"build": {...}
,但想要在執行turbo run build
時包含單一程式碼倉庫根目錄package.json
檔案中定義的build
腳本,您可以透過在設定中也包含"//#build": {...}
,來將根目錄加入執行範圍。 - 反之,如果您只需要
"//#my-script": {...}
,則不需要定義通用的"my-script": {...}
項目。
定義根腳本 check-examples
並將根目錄加入 test
的範例管線可能如下所示
注意:我們建議在 pipeline
中宣告根任務時,一律指定 inputs
以改善快取。
新的 CI/CD 食譜
我們增加了將 Turborepo 和遠端快取搭配使用的食譜,適用於
如果您想要在此處看到其他食譜,請開啟GitHub 討論讓我們知道。
其他錯誤修正和改進
- 改進的 git 操作和雜湊
- 在相依性圖形分析中改進的循環偵測
- 新增對 Windows ARM 64 位元架構的支援
- 改進的遠端快取錯誤記錄
- 在設計系統範例中新增 Storybook
社群
自從 4 月初發布 Turborepo v1.2 以來,我們看到驚人的採用率和社群成長
- 8.1k+ GitHub 星星
- 275k+ 每週 NPM 下載次數(增加約 2 倍)
- 1,200+ Turborepo 社群 Discord 成員
- 透過 Vercel 上的遠端快取節省了 5.8 年的運算時間(增加約 5 倍),現在每週節省超過 7 個月
Turborepo 是包含我們核心團隊在內,超過 136 位貢獻者共同努力的成果。
此版本的發佈歸功於以下貢獻者:@gsoltis、@nathanhammond、@tknickman、@jaredpalmer、@zvictor、@ObliviousHarmony、@O4epegb、@rafaeltab、@mcmontseny、@bertspaan、@Jastor11 和 @enBonnet
感謝您持續的支持、意見回饋,以及與我們合作,讓 Turborepo 成為您首選的建置工具。