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

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

Введение

Lerna — первоначальный инструмент для монорепозиториев в экосистеме JavaScript/TypeScript. Он существует много лет и используется десятками тысяч проектов, включая React и Jest.

Lerna решает две ключевые проблемы JavaScript/TypeScript монорепозиториев:

  • Запуск команд для любого количества проектов максимально эффективно: в правильном порядке с возможностью распределения задач между несколькими машинами.

  • Управление процессом публикации: от контроля версий до выгрузки в NPM, с гибкими настройками под любые workflow.

Nx (компания, стоящая за одноимённой open source системой сборки) взяла на себя управление Lerna. Nx — система сборки, созданная экс-инженерами Google с использованием внутренних практик Google. Lerna v5 стал первым релизом под новым руководством: обновлены устаревшие пакеты и начата очистка репозитория. Начиная с v6+, Lerna делегирует планирование задач промышленному task runner Nx, благодаря чему lerna run получает бесплатные преимущества кэширования и распределения команд!

Почему Lerna?

  • Молниеносная скорость! Lerna работает быстрее большинства аналогов (бенчмарк). Как? Под капотом Lerna v6+ использует Nx для выполнения задач. Подробнее о запуске задач.

  • Кэширование вычислений — Lerna определяет, выполнялась ли задача ранее. Вместо повторного запуска она мгновенно восстанавливает файлы и логи терминала. Кэш доступен коллегам и CI-системам. С Lerna ваша организация больше никогда не будет дважды собирать или тестировать одно и то же. Подробнее »

  • Распределённое выполнение задач без конфигурации — Lerna распределяет любые команды между машинами без настроек, сохраняя удобство разработки на одной машине. Масштабирование монорепозитория сводится к включению флага. Увидьте, как DTE ускоряет CI в 20 раз. Подробнее »

  • Чистый вывод в терминал — Монорепозитории содержат сотни проектов. Вывод всех данных затрудняет поиск ошибок. Lerna решает эту проблему.

  • Мощный визуализатор зависимостей — Интерактивный инструмент для анализа структуры workspace. Подробнее »

  • Публикация в NPM — Lerna зарекомендовала себя как превосходный инструмент для публикации множества пакетов в npm. Независимо от того, имеют ли пакеты независимые версии, Lerna позаботится об этом. Подробнее »

  • Простота внедрения — Несмотря на мощные возможности, Lerna требует минимальной настройки. Хотите увидеть?