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