このページは PageTurner AI で翻訳されました(ベータ版)。プロジェクト公式の承認はありません。 エラーを見つけましたか? 問題を報告 →
コマンド
フィルターオプション
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環境で役立ちます。PRのマージ先ブランチを取得できる場合、そのブランチを--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で指定)のすべての依存関係(devDependencies含む)に対して操作が行われます。
注意: このフラグは
--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%正確ではない場合があります。詳細はこのIssueを参照してください。