prune
為目標套件產生部分 Monorepo。輸出將放置在名為 out
的目錄中,其中包含以下內容
- 建置目標所需之所有內部套件的完整原始碼。
- 已修剪的 lockfile,其中包含建置目標所需之原始 lockfile 的子集。
- 根目錄
package.json
的副本。
範例
從具有以下結構的儲存庫開始
package.json
pnpm-lock.yaml
執行 turbo prune frontend
以在 out
目錄中為 frontend
應用程式產生修剪過的工作區
package.json
pnpm-lock.yaml (部分)
選項
--docker
預設為 false
。
變更輸出目錄,使其更易於與Docker 最佳實務和圖層快取搭配使用。目錄將包含
- 名為
json
的資料夾,其中包含修剪過的工作區的package.json
檔案。 - 名為
full
的資料夾,其中包含修剪過的工作區的完整原始碼,用於建置目標所需的內部套件。 - 已修剪的 lockfile,其中包含建置目標所需之原始 lockfile 的子集。
使用與上述相同的範例,執行 turbo prune frontend --docker
將產生以下內容
pnpm-lock.yaml (部分)
package.json (來自儲存庫根目錄)
package.json (來自儲存庫根目錄)
package.json
package.json
package.json
--out-dir <path>
預設為 ./out
。
自訂產生修剪輸出所在的目錄。
--use-gitignore[=<bool>]
預設值:true
將檔案複製到輸出目錄時,遵循 .gitignore
檔案。
與 pnpm deploy
的比較
雖然 turbo prune
和 pnpm deploy
都用於隔離 monorepo 中的套件,但它們用途不同,產生的輸出也不同。
turbo prune
產生部分 monorepo,而 pnpm deploy
產生僅包含目標套件內容的目錄。
pnpm deploy
產生的目錄具有自我包含的 node_modules
,其中包含硬連結的內部相依性。這會產生可攜式套件,可以直接複製到伺服器並使用,而無需額外步驟。儲存庫結構不會保留,因為重點是產生獨立的可部署套件。