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

このページは PageTurner AI で翻訳されました(ベータ版)。プロジェクト公式の承認はありません。 エラーを見つけましたか? 問題を報告 →

ワークスペース監視

注記

ワークスペース監視は Lerna 6.4.0 以降で利用可能です。

Lerna はパッケージ内のファイル変更を監視し、リポジトリのルートから自動的にコマンドを実行できます。開発ワークフローでファイルを更新する際にパッケージの再ビルドやテストの再実行が必要な場合に便利です。

これにより、各パッケージごとに個別に監視設定を行う手間が不要になります。

使用例

全てのパッケージを監視し、変更があったパッケージ名とファイルを出力する:

$ lerna watch -- echo \$LERNA_PACKAGE_NAME \$LERNA_FILE_CHANGES

全てのパッケージを監視し、ファイル変更時に該当パッケージで"build"スクリプトを実行する:

$ lerna watch -- lerna run build --scope=\$LERNA_PACKAGE_NAME

全てのパッケージを監視し、変更の影響を受けるすべての対象で"build"スクリプトを実行する:

$ lerna watch -- lerna run build --since

単一パッケージを監視し、ファイル変更時にそのパッケージで"build"スクリプトを実行する:

$ lerna watch --scope="my-package-1" -- lerna run build --scope=\$LERNA_PACKAGE_NAME

単一パッケージとその依存関係を監視し、変更があったものに対して"build"スクリプトを実行する:

$ lerna watch --scope="my-package-1" --include-dependencies -- lerna run build --scope=\$LERNA_PACKAGE_NAME

全てのパッケージを監視し、変更があったパッケージとそれに依存する全パッケージでbuildスクリプトを実行する:

$ lerna watch -- lerna run build --scope=\$LERNA_PACKAGE_NAME --include-dependents

より高度なフィルタリングについては、フィルターオプションドキュメントを参照してください。利用可能なオプションの詳細は、lerna watchドキュメントをご覧ください。

監視環境変数

Lerna は内部コマンド実行時に環境変数 $LERNA_PACKAGE_NAME$LERNA_FILE_CHANGES を設定します。これらは実行コマンドのカスタマイズに利用できます。

  • $LERNA_PACKAGE_NAME は変更があったパッケージ名に置き換えられます。

  • $LERNA_FILE_CHANGES は変更があったファイルに置き換えられます。1サイクルで複数のファイル変更が検出された場合、$LERNA_FILE_CHANGES はスペース区切りですべてリスト表示します。

注記

$LERNA_PACKAGE_NAME$LERNA_FILE_CHANGES を使用する際は、$をバックスラッシュ (\) でエスケープする必要があります。上記の使用例を参照してください。

パッケージマネージャーでの実行

上記の例ではターミナルで直接lernaを使用していますが、PATHに追加せずにパッケージマネージャー経由でlernaを実行することも可能です:

pnpm:

pnpm lerna watch -- lerna run build --scope=\$LERNA_PACKAGE_NAME

yarn:

yarn lerna -- watch -- lerna run build --scope=\$LERNA_PACKAGE_NAME

npx:

npx -c 'lerna watch -- lerna run build --scope=\$LERNA_PACKAGE_NAME'
注記

npxを使用する場合は、-cオプションを付け、lerna watchコマンド全体をシングルクォート (') で囲む必要があります。これを行わないと、npx監視環境変数lernaにコマンドを渡す前に置換しようとし、$LERNA_PACKAGE_NAME$LERNA_FILE_CHANGESが常に空の値になります。

注記

WindowsでLernaを使用する場合、環境変数を'%'で囲む必要があります。例:

$ lerna watch -- lerna run build --scope=%LERNA_PACKAGE_NAME% --include-dependents