跳到主要內容

指令

使用「篩選」選項

Lerna 指令可以使用篩選選項,控制它們所作用的套件。

需要篩選的 lerna 子指令選項

安裝 lerna 以取得 lerna CLI 存取權。

選項

--scope <glob>

僅包含名稱與指定 glob 相符的套件。

$ lerna exec --scope my-component -- ls -la
$ lerna run --scope "toolbar-*" test
$ lerna run --scope package-1 --scope "*-2" lint

注意:對於某些 glob,可能需要加註選項參數的引號,以避免過早的指令殼擴充。

使用 npx 執行

npx 執行 lerna 時,傳遞 glob 參數必須使用明顯的等號「=」。此為避免 npx 過早地擴充參數。

例如

$ npx lerna run --scope="toolbar-*" test
$ npx lerna run --scope="package-{1,2,5}" test

--ignore <glob>

排除名稱與指定 glob 相符的套件。

$ lerna exec --ignore "package-{1,2,5}"  -- ls -la
$ lerna run --ignore package-1 test
$ lerna run --ignore "package-@(1|2)" --ignore package-3 lint

以下提供可找到更多篩選範例的 連結

--no-private

排除私有套件。預設會包含這些套件。

--since [ref]

僅包含自指定 ref 之後已變更的套件。如果未傳遞 ref,預設為最新標籤。

# List the contents of packages that have changed since the latest tag
$ lerna exec --since -- ls -la

# Run the tests for all packages that have changed since `main`
$ lerna run test --since main

# List all packages that have changed since `some-branch`
$ lerna ls --since some-branch

當在持續整合 (CI) 使用此項功能時特別有用,如果您能取得公關單會進入的目標分支,因為您可以將其做為 --since 選項的 ref。這對進入預設分支以及功能分支的公關單都適用。

--exclude-dependents

使用 --since 執行指令時排除所有傳遞相依項,覆寫預設的「變更」演算法。

若沒有 --since,此旗標不具任何效果,而且會在這種情況下傳出錯誤。

--include-dependents

在執行指令時包含所有傳遞相依項,不論 --scope--ignore--since 如何設定。

--include-dependencies

在執行指令時包含所有傳遞相依項,不論 --scope--ignore--since 如何設定。

搭配會接受 --scope (bootstrapcleanlsrunexec) 的任何指令使用。確保任何範圍套件(透過 --scope--ignore)的所有相依項(以及開發環境相依項)也會執行相同的操作。

注意:這會覆寫 --scope--ignore 旗標。

也就是說,如果套件符合 --ignore 旗標,如果其他正在套用引導程式套件的套件依賴它,它仍會套用引導程式。

這對您想「設定」仰賴其他已設定套件的單一套件的情況很有用。

$ lerna bootstrap --scope my-component --include-dependencies
# my-component and all of its dependencies will be bootstrapped
$ lerna bootstrap --scope "package-*" --ignore "package-util-*" --include-dependencies
# all packages matching "package-util-*" will be ignored unless they are
# depended upon by a package whose name matches "package-*"

--include-merged-tags

$ lerna exec --since --include-merged-tags -- ls -la

使用 --since 執行指令時包含已合併分支的標籤。這僅在您從功能分支發布大量內容時才很有用,這通常並不建議執行。

限制

即使您可以先不安裝專案相依項就能執行 Lerna,例如使用 pnpm dlxnpx,建議不要這麼做。指令可能可以執行,但它的輸出內容可能無法 100% 正確無誤。請參閱這個問題,深入了解詳細資訊。