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

Эта страница переведена PageTurner AI (бета). Не одобрена официально проектом. Нашли ошибку? Сообщить о проблеме →

Часто задаваемые вопросы

Этот документ находится в разработке.

Как добавить стороннюю зависимость в мой Lerna-репозиторий?

Lerna не отвечает за добавление или связывание зависимостей — это задача вашего менеджера пакетов (npm/yarn/pnpm). Используя функцию workspaces в менеджере пакетов, все локальные пакеты будут автоматически связаны на основе зависимостей, указанных в ваших файлах package.json.

Документацию по workspaces для вашего менеджера пакетов можно найти здесь:

ПРИМЕЧАНИЕ: Поскольку Lerna появилась раньше функции workspaces в менеджерах пакетов, исторически существовали команды (add, bootstrap и link), которые пытались восполнить этот пробел. К счастью, эти команды больше не нужны, и Lerna может сосредоточиться на своих сильных сторонах, позволяя менеджерам пакетов делать то же самое.

Новые пакеты внутри Lerna-репозитория

Для создания новых пакетов внутри вашего Lerna-репозитория используйте команду lerna create.

lerna create <packageName>

Дополнительные параметры см. в документации по create.

Если вы не хотите использовать lerna create, вы можете вручную создать пакет, выполнив npm init в поддиректории папки packages — Lerna автоматически его обнаружит.

Существующие пакеты

Для переноса существующего пакета в ваш Lerna-репозиторий используйте lerna import <package>. Эта команда сохранит историю коммитов.

lerna import <package> принимает локальный путь, а не URL. В этом случае вам потребуется иметь целевой репозиторий в вашей файловой системе.

Как повторить публикацию при сбое publish?

Если некоторые пакеты были опубликованы успешно, а другие — нет, Lerna publish может оставить репозиторий в несогласованном состоянии с изменёнными файлами. Чтобы восстановиться, сбросьте все локальные изменения от неудачного запуска для возврата к чистому рабочему дереву. Затем повторите ту же команду lerna publish. Lerna попытается опубликовать все пакеты снова, но распознает уже опубликованные и пропустит их с предупреждением.

Если вы использовали команду lerna publish без позиционных аргументов для выбора новой версии пакетов, выполните lerna publish from-git, чтобы повторить публикацию той же уже помеченной версии, избежав повторного повышения версии.

Как Lerna обнаруживает пакеты?

По умолчанию для npm и yarn Lerna использует свойство workspaces, настроенное в package.json, для определения пакетов. Подробнее об этом свойстве см. в документации npm или документации yarn.

Если вы используете pnpm, возможно, вы указали npmClient как pnpm в lerna.json. В таком случае Lerna будет использовать свойство packages в файле pnpm-workspace.yaml, чтобы определить, с какими пакетами работать. Подробнее об этом свойстве см. в документации pnpm.

Если вы хотите, чтобы Lerna работала только с определённым подмножеством пакетов в вашем репозитории, вы можете использовать свойство packages в lerna.json для их поиска.