Перейти к основному содержимому
Неофициальный Бета-перевод

Эта страница переведена 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