コマンド
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
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%正確ではない可能性があります。詳細については、この問題を参照してください。