nx-workspace-patterns
Skonfiguruj i zoptymalizuj monorepo Nx — zarządzaj granicami projektów, cachowaniem i zależnościami
Instalacja
Wybierz klienta i sklonuj repozytorium do odpowiedniego katalogu skilli.
Instalacja
O skillu
Umiejętność do pracy z monorepo Nx na poziomie produkcyjnym. Pomaga w konfiguracji workspace'ów, definiowaniu granic między projektami, optymalizacji cache'u kompilacji oraz wdrażaniu poleceń affected. Zawiera gotowe wzorce dla struktury katalogów, typów bibliotek (feature, ui, data-access, util, shell) i konfiguracji nx.json. Idealna dla zespołów migrujących do Nx lub rozwijających duże projekty z wieloma aplikacjami i bibliotekami wspólnymi.
Jak używać
Zainstaluj umiejętność w swoim agencie Claude lub Copilot, dodając ją do konfiguracji skills. Umiejętność będzie dostępna jako plugin w sekcji developer-essentials.
Przygotuj strukturę workspace'u zgodnie z wzorcem: utwórz katalogi apps/ dla aplikacji deployowalnych, libs/ dla bibliotek wspólnych, tools/ dla custom executorów i generatorów. W libs/ organizuj biblioteki według typu (feature/, ui/, data-access/, util/, shell/).
Skonfiguruj plik nx.json w głównym katalogu workspace'u. Ustaw npmScope na nazwę Twojej organizacji, zdefiniuj defaultBase dla poleceń affected (zazwyczaj "main"), a następnie skonfiguruj tasksRunnerOptions z cacheable operations (build, lint, test, e2e, build-storybook) i poziomem paralelizacji.
Zdefiniuj targetDefaults dla poszczególnych zadań — dla build ustaw dependsOn na "^build" aby budować zależności, dla test i lint skonfiguruj inputs aby kontrolować cache'owanie na podstawie zmian w kodzie.
Wdrażaj polecenia affected w CI/CD — użyj nx affected:build, nx affected:test i nx affected:lint aby budować i testować tylko projekty zmienione w danym pull request'cie. To znacznie przyspiesza procesy CI.
Monitoruj zależności między projektami i utrzymuj czystość granic — używaj umiejętności do weryfikacji, że projekty w libs/ nie importują z apps/, a biblioteki są organizowane według ich roli (feature dla logiki biznesowej, ui dla komponentów, data-access dla API).