ワークスペース監視
ワークスペース監視は、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
を使用する方法を示しています。ただし、パスに追加せずにパッケージマネージャー経由で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