コマンド
lerna add-cachinglerna changedlerna cleanlerna createlerna difflerna execlerna importlerna infolerna initlerna listlerna publishlerna repairlerna runlerna versionlerna watch
フィルターオプション
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%正確ではない可能性があります。詳細については、この問題を参照してください。