Эта страница переведена PageTurner AI (бета). Не одобрена официально проектом. Нашли ошибку? Сообщить о проблеме →
Часто задаваемые вопросы
Этот документ находится в разработке.
Как добавить стороннюю зависимость в мой Lerna-репозиторий?
Lerna не отвечает за добавление или связывание зависимостей — это задача вашего менеджера пакетов (npm/yarn/pnpm). Используя функцию workspaces в менеджере пакетов, все локальные пакеты будут автоматически связаны на основе зависимостей, указанных в ваших файлах package.json.
Документацию по workspaces для вашего менеджера пакетов можно найти здесь:
-
pnpm(https://pnpm.io/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 для их поиска.