跳到主要內容

yarn workspaces foreach

在所有工作區上執行命令。

用法

$ yarn workspaces foreach <commandName> ...

範例

發佈所有套件

yarn workspaces foreach -A npm publish --tolerate-republish

在所有後代套件上執行建置腳本

yarn workspaces foreach -A run build

在目前和所有後代套件上平行執行建置腳本,優先建置套件相依性

yarn workspaces foreach -Apt run build

在多個套件及其所有相依性上執行建置腳本,優先建置相依性

yarn workspaces foreach -Rpt --from '{workspace-a,workspace-b}' run build

詳細資料

此命令將在目前及其所有後代工作區上執行指定的子命令。各種旗標可以改變命令的確切行為

  • 如果設定 -p,--parallel,命令將會平行執行;它們預設會限制在與核心數目大約一半的平行工作數,但這可以透過 -j,--jobs 覆寫,或透過設定 -j unlimited 停用。

  • 如果 -p,--parallel-i,--interlaced 都設定了,Yarn 會在收到輸出時列印輸出中的行。如果沒有設定 -i,--interlaced,它會緩衝每個程序的輸出,並在來源程序結束後才列印結果緩衝區。

  • 如果設定 -t,--topological,Yarn 只會在所有透過 相依性 欄位相依的工作區都成功執行完畢後才執行命令。如果設定 --topological-dev,在找出等待點時,會考慮 相依性devDependencies 欄位。

  • 如果設定 -A,--all,Yarn 會在專案的所有工作區執行指令。

  • 如果設定 -R,--recursive,Yarn 會透過遞迴評估 dependenciesdevDependencies 欄位,來尋找要執行指令的工作區,而不是查看 workspaces 欄位。

  • 如果設定 -W,--worktree,Yarn 會透過查看目前的 worktree,來尋找要執行指令的工作區。

  • 如果設定 --from,Yarn 會使用符合「from」glob 的套件,作為任何遞迴搜尋的起點。

  • 如果設定 --since,Yarn 只會在自指定 ref 以後修改的工作區上執行指令。預設情況下,Yarn 會使用 changesetBaseRefs 組態選項指定的 ref。

  • 如果設定 --dry-run,Yarn 會說明它會做什麼,但不會實際執行任何動作。

  • 指令可能只會套用在某些工作區,透過使用 --include 作為白名單。--exclude 旗標會執行相反的動作,會列出不應執行指令的套件。這兩個旗標都接受 glob 模式(如果為有效的 Ident,且受 micromatch 支援)。請務必跳脫模式,以防止您自己的 shell 嘗試展開它們。

-v,--verbose 旗標可以傳遞兩次:一次是在輸出列之前加上原始工作區的名稱,另一次是包含開始/結束/計時記錄列。在終端機環境中,預設會啟用最高詳細程度。

如果指令是 run,且要執行的指令不存在,則會略過子工作區,且不會產生錯誤。

選項

定義說明

--from #0

一個 glob 模式識別碼或路徑陣列,用於作為任何遞迴的基礎

-A,--all

在專案的所有工作區上執行命令

-R,--recursive

在目前的的工作區和所有其遞迴相依性上執行命令

-W,--worktree

在目前的工作區的所有工作區上執行命令

-v,--verbose

將記錄詳細程度提高至多 2 倍

-p,--parallel

平行執行命令

-i,--interlaced

即時列印命令的輸出,而不是緩衝它

-j,--jobs #0

執行將限制為的最大平行任務數目;或 unlimited

-t,--topological

在所有它依賴的工作區(常規)完成後執行命令

--topological-dev

在所有它依賴的工作區(常規 + 開發)完成後執行命令

--include #0

一個 glob 模式識別碼或路徑陣列;只有符合的工作區會被遍歷

--exclude #0

一個 glob 模式識別碼或路徑陣列;符合的工作區不會被遍歷

--no-private

避免在私人工作區上執行命令

--since

僅包含自指定 ref 以來已變更的工作區。

-n,--dry-run

列印將執行的命令,而不實際執行它們