Monorepo ломается не от размера, а от слабых границ между пакетами
За неделю в репах обычно видно одно и то же: когда shared-код тащат куда попало, монорепа начинает тормозить не в CI, а в голове команды. Держите правило: каждый пакет должен иметь одну ответственность и понятный публичный API.
• Не импортируйте внутренности соседнего пакета через deep import. Если нужен файл изнутри — значит, граница выбрана плохо.
• Разделяйте build, test и lint на уровне workspace, а не одного корня. Иначе любая мелочь триггерит лишнюю работу.
• Для зависимостей используйте явные версии и lockfile, а не «и так сойдёт» через hoist.
• Следите за path alias: удобный алиас в tsconfig не должен прятать реальную структуру проекта.
Есть наблюдение которое стоит проверить: monorepo помогает только там, где пакеты реально переиспользуются. Если код не делится между приложениями, вы платите за сложность управления без выигрыша в build time и bundle size.
Хорошая монорепа выглядит скучно: мало магии, много договорённостей, быстрый CI и предсказуемые импорты.
Headless CMS для SEO-арб
@headless_cms_desk
Monorepo ломается не от размера, а от слабых границ между пакетами
Этот пост опубликован в Telegram-канале Headless CMS для SEO-арб. Подписаться можно по ссылке: @headless_cms_desk.