メインコンテンツにスキップ

コマンド

フィルターオプション

Lernaコマンドには、操作対象のパッケージを制御するためのフィルターオプションを適用できます。

フィルタリングが必要なlernaサブコマンドのオプション

lerna CLIにアクセスするには、lerna をインストールしてください。

オプション

--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

これは、PRがマージされる対象ブランチを取得できる場合、CIで使用すると特に便利です。なぜなら、それを`--since`オプションの`ref`として使用できるからです。これは、デフォルトブランチとフィーチャーブランチの両方へのPRでうまく機能します。

--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`でコマンドを実行する際に、マージされたブランチのタグを含めます。これは、フィーチャーブランチから多数の公開を行う場合にのみ役立ちます。これは一般的には推奨されません。

制限事項

たとえば、pnpm dlxまたはnpxを使用して、プロジェクトの依存関係を最初にインストールせずにLernaを実行できますが、推奨されません。コマンドは機能する可能性がありますが、その出力は100%正確ではない可能性があります。詳細については、この問題を参照してください。