Эта страница переведена 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заменяется на изменённые файлы. Если за один цикл обнаружено несколько изменений, то$LERNA_FILE_CHANGESбудет содержать их список, разделённый пробелами.
При использовании $LERNA_PACKAGE_NAME и $LERNA_FILE_CHANGES символ $ нужно экранировать обратной косой чертой (\). См. примеры выше.
Использование с менеджерами пакетов
В примерах выше показано прямое использование lerna в терминале. Однако вы можете использовать lerna через менеджер пакетов без добавления в PATH:
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.
При использовании Lerna в Windows обрамляйте переменные окружения символами '%'. Например:
$ lerna watch -- lerna run build --scope=%LERNA_PACKAGE_NAME% --include-dependents