新增至現有儲存庫
Turborepo 可以逐步導入**任何儲存庫,無論是單一套件或多套件**,以加快儲存庫的開發人員和 CI 工作流程。
在安裝 turbo
並在 turbo.json
中設定您的任務後,您會注意到快取如何協助您更快地執行任務。
準備單一套件工作區
一個單一套件工作區,例如,是在執行 npx create-next-app
或 npm create vite
後得到的。您不需要做任何額外的工作,Turborepo 即可處理您的儲存庫,因此您可以跳到下面的第一步。
若要深入瞭解單一套件工作區中的 Turborepo,請參閱專用指南。
準備多套件工作區 (monorepo)
turbo
建構於 Workspaces 之上,這是 JavaScript 生態系統中主要套件管理員的一項功能。這使得它很容易在您現有的程式碼庫中採用。
要知道的事
如果您發現 turbo
有問題,例如無法探索工作區中的套件或無法遵循您的相依性圖,請參閱我們的建構儲存庫頁面以取得提示。
請注意,您不必立即使用 turbo
開始執行 _所有_ 套件的 _所有_ 任務。您可以從少數幾個套件中的單一任務開始,並隨著您對 Turborepo 的熟悉度增加,逐步新增更多任務和套件。
將 Turborepo 新增至您的儲存庫
新增 turbo.json
檔案
在您的儲存庫根目錄中,建立一個 turbo.json
檔案。
在本指南中,我們將使用 build
和 check-types
任務,但您可以將這些替換為您感興趣的其他任務,例如 lint
或 test
。
如需設定 turbo.json
的詳細資訊,請參閱設定選項文件。
在您的 Next.js 應用程式中,請確保您有一個 check-types
指令碼,以便 turbo
執行。
在多套件工作區中,您可能也想要將 check-types
指令碼新增至一個或多個函式庫套件,以查看多個指令碼如何透過一個 turbo
命令在不同套件中執行。
將 packageManager
欄位新增至根 package.json
Turborepo 使用來自您套件管理員的資訊來最佳化您的儲存庫。若要宣告您使用的套件管理員,如果您還沒有,請將 packageManager
欄位新增至您的根 package.json
。
要知道的事
根據您的儲存庫,您可能需要在遷移時或在您還無法使用 packageManager
鍵的情況下,使用 dangerouslyDisablePackageManagerCheck。
使用 turbo
執行任務
您現在可以使用 Turborepo 執行您先前新增至 turbo.json
的任務。使用上面的範例任務
這會同時執行 build
和 check-types
任務。您的工作區的相依性圖將用於按正確的順序執行任務。
在不對程式碼進行任何變更的情況下,請嘗試再次執行 build
和 check-types
您應該會看到類似這樣的終端機輸出
恭喜!**您剛剛在毫秒內建置並進行程式碼類型檢查**。
若要深入瞭解 turbo
如何實現此目的,請查看快取文件。
開始使用 turbo
執行 dev
進行開發
在多套件工作區中,您可以執行 turbo dev
來同時啟動所有套件的開發任務。
您也可以使用篩選器來專注於特定套件及其相依性。
請注意,此步驟在單一套件工作區中沒有太多價值,因為
- 您不會快取開發任務的輸出。
- 只有一個開發指令碼,因此沒有任何東西可以平行執行。
這有幫助嗎?