指令
lerna add-caching
lerna changed
lerna clean
lerna create
lerna diff
lerna exec
lerna import
lerna info
lerna init
lerna list
lerna publish
lerna repair
lerna run
lerna version
lerna watch
使用「篩選」選項
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
(bootstrap
、clean
、ls
、run
、exec
) 的任何指令使用。確保任何範圍套件(透過 --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 dlx 或 npx,建議不要這麼做。指令可能可以執行,但它的輸出內容可能無法 100% 正確無誤。請參閱這個問題,深入了解詳細資訊。