メインコンテンツへスキップ
非公式ベータ版翻訳

このページは 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での実行

npxlernaを実行する場合、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を受け付けるコマンド(bootstrapcleanlsrunexec)と組み合わせて使用します。 スコープ対象パッケージ(--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 dlxnpxを使用してプロジェクトの依存関係を事前インストールせずにLernaを実行できますが、推奨されません。コマンドは動作する可能性がありますが、出力が100%正確ではない場合があります。詳細はこのIssueを参照してください。