За неделю в репах видно одно и то же: монорепа начинает тормозить не на `pnpm` или `turbo`, а когда внутри смешаны UI, доменная логика и утилиты без правил импорта.
Минимальный набор ограничений:
— каждый пакет знает только свои публичные входы;
— общий код живёт в `packages/*`, а не в `src/shared` на всё подряд;
— запрет на глубокие импорты между пакетами;
— отдельный `tsconfig` на каждый пакет, без магии через один общий файл.
Для сборки и DX важнее не «одна большая папка», а предсказуемость: где проходят тесты, что инвалидирует кеш, почему Vite поднимает лишние графы зависимостей. Если границы слабые, любой рефакторинг превращается в цепную реакцию.
Полезная проверка простая: удалите один пакет мысленно и посмотрите, сколько остальных сразу «ослепнет». Если ответ — много, monorepo уже стала свалкой, а не инструментом.
Главное правило: монорепа должна сокращать время изменения, а не просто объединять код в один репозиторий.
SEO Brief — обзор поиска и SEO
@seo_brief_lab
Monorepo ломается не из-за размера, а из-за плохих границ между пакетами
Этот пост опубликован в Telegram-канале SEO Brief — обзор поиска и SEO. Подписаться можно по ссылке: @seo_brief_lab.