arrow_back
КЪМ ЛАБОРАТОРИЯТА
ENGINEERING 12 Яну, 2026

Защо избрахме Nx за монорепото на Inviteathon?

Когато стартирахме Inviteathon, знаехме, че ще надрасне едно Angular приложение. Имахме административен портал, клиентско табло за управление и набор от споделени UI библиотеки.

Проблемът с Multirepo

Преди това поддържахме отделни хранилища за всеки проект. Споделянето на код означаваше публикуване на частни NPM пакети или използване на git submodules—и двете въвеждаха допълнително триене.

Влиза Nx

Nx ни позволи да държим всичко в едно хранилище, докато поддържаме строги граници чрез tags в nx.json.

{
  "projects": {
    "inviteathon-client": { "tags": ["type:app", "scope:client"] },
    "inviteathon-admin": { "tags": ["type:app", "scope:admin"] },
    "shared-ui": { "tags": ["type:lib", "scope:shared"] }
  }
}

Сега, ако се опитаме да импортираме административна библиотека в клиентското приложение, linter-ът ни спира незабавно. CI/CD се изпълнява само за засегнатите проекти.