Turborepo logo

prune

為目標套件產生部分 Monorepo。輸出將放置在名為 out 的目錄中,其中包含以下內容

  • 建置目標所需之所有內部套件的完整原始碼。
  • 已修剪的 lockfile,其中包含建置目標所需之原始 lockfile 的子集。
  • 根目錄 package.json 的副本。
終端機
turbo prune [package]

範例

從具有以下結構的儲存庫開始

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 prunepnpm deploy 都用於隔離 monorepo 中的套件,但它們用途不同,產生的輸出也不同。

turbo prune 產生部分 monorepo,而 pnpm deploy 產生僅包含目標套件內容的目錄。

pnpm deploy 產生的目錄具有自我包含的 node_modules,其中包含硬連結的內部相依性。這會產生可攜式套件,可以直接複製到伺服器並使用,而無需額外步驟。儲存庫結構不會保留,因為重點是產生獨立的可部署套件。

小時

總計節省的運算時間
開始使用
遠端快取 →

本頁內容