React Academy · Lekcja

Polecenia Nx Affected i buforowanie

Uruchamianie tylko testów i buildów, których dotyczy zmiana, oraz przyspieszanie CI dzięki rozproszonemu buforowaniu Nx Cloud.

Lekcja 3 z 413 kroki

Polecenia Nx Affected i buforowanie to bezpłatna lekcja React Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej React Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs React Academy zawiera 4 lekcji w sumie.

Pojęcie affected

Nx śledzi graf zależności w monorepo. Gdy zmienisz plik, Nx oblicza, których projektów dotyczą zmiany (zostały bezpośrednio zmodyfikowane lub zależą od zmodyfikowanych projektów), a następnie uruchamia zadania tylko dla nich.

Uruchamianie testów affected

Uruchamiaj testy tylko dla projektów, których dotyczą zmiany od czasu gałęzi głównej.

# Compare to main branch:
npx nx affected --target=test --base=origin/main --head=HEAD

# Shorthand (uses nx.json defaultBase):
npx nx affected --target=test

Uruchamianie kompilacji affected

Buduj tylko projekty, których dotyczą zmiany — ma to kluczowe znaczenie w CI, aby uniknąć przebudowy całego monorepo przy każdym pull requeście.

npx nx affected --target=build

# With parallel workers:
npx nx affected --target=build --parallel=3

Lintowanie i testy E2E affected

Stosuj ten sam schemat do lintowania i testów E2E.

npx nx affected --target=lint
npx nx affected --target=e2e

Jak Nx określa projekty affected

Nx oblicza skróty wszystkich plików źródłowych, plików package.json i plików konfiguracyjnych. Projekt jest affected, jeśli zmienił się którykolwiek z jego własnych plików lub dowolny projekt, z którego importuje.

Lokalny cache obliczeń

Nx przechowuje wyniki zadań (artefakty kompilacji i wyniki testów) w .nx/cache. Uruchomienie tego samego zadania przy niezmienionych danych wejściowych natychmiast przywraca wynik z cache — odtwarzane są także dane wyjściowe, w tym logi terminala.

# First run (builds):
$ npx nx build web  → Builds in 28s, cached

# Second run (no changes):
$ npx nx build web  → Cache hit! [existing outputs match] 0ms

# Clear cache if needed:
$ npx nx reset

Zdalny cache Nx Cloud

Nx Cloud współdzieli cache między członkami zespołu i systemem CI. Jeśli inna osoba z zespołu zbudowała już projekt przy tych samych danych wejściowych, CI skorzysta ze zdalnego cache zamiast wykonywać kompilację ponownie — nawet na świeżo skonfigurowanej maszynie.

# Connect workspace to Nx Cloud:
npx nx connect-to-nx-cloud

# Set CI environment variable:
# NX_CLOUD_ACCESS_TOKEN=<token>

Konfiguracja danych wejściowych cache

Skonfiguruj w pliku project.json, które pliki stanowią dane wejściowe cache dla danego celu. Wyklucz pliki, które nie wpływają na wynik kompilacji (np. README i pliki z danymi testowymi), aby zmaksymalizować liczbę trafień cache.

// project.json
{
  "targets": {
    "build": {
      "inputs": [
        "default",  // source files
        "^default"  // upstream dependency source files
      ],
      "outputs": ["{workspaceRoot}/dist/apps/web"]
    }
  }
}

Rozdzielanie zadań (Nx Agents)

Agenty Nx Cloud rozdzielają zadania affected między wiele maszyn CI, uruchamiając je równolegle i znacznie skracając czas wykonywania CI w dużych monorepo.

Rozszerzenie Nx Console dla VS Code

Rozszerzenie Nx Console udostępnia graficzny interfejs do uruchamiania poleceń Nx, wizualizowania grafu projektów i generowania kodu — bez konieczności zapamiętywania flag CLI.

Wizualizacja grafu zadań

nx graph --task=build pokazuje graf zależności zadań, w tym informacje o tym, które zadania zależą od innych — ułatwia to zrozumienie kolejności kompilacji.

npx nx graph --task=build

Szybkie sprawdzenie

Od czego zależy, czy zadanie Nx zostanie pobrane z cache?

Podsumowanie

nx affected --target=X uruchamia zadania tylko dla zmienionych projektów i projektów od nich zależnych. Nx przechowuje wyniki w cache, obliczając skróty danych wejściowych, a następnie natychmiast je odtwarza. Nx Cloud rozszerza tę funkcję o wspólny zdalny cache dostępny na wielu maszynach. Użyj --parallel=N, aby uruchamiać zadania równolegle i przyspieszyć CI.

Bezpłatny start

Ucz się React dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
88
Lekcje
324

Często zadawane pytania

Czy lekcja „Polecenia Nx Affected i buforowanie” jest bezpłatna?

Tak — pełny tekst „Polecenia Nx Affected i buforowanie” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu React Academy, przejdź na CoddyKit PRO. Kurs React Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Polecenia Nx Affected i buforowanie”?

Uruchamianie tylko testów i buildów, których dotyczy zmiana, oraz przyspieszanie CI dzięki rozproszonemu buforowaniu Nx Cloud. Ćwiczysz React Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć React Academy?

Nie wymagamy żadnego doświadczenia. React Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.

Ile czasu zajmuje lekcja „Polecenia Nx Affected i buforowanie”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji React Academy?

Tak. Każda lekcja React Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Tworzenie monorepo Nx z aplikacjami React
  2. Współdzielone biblioteki i pakiety wewnętrzne
  3. Polecenia Nx Affected i buforowanie
  4. Generatory kodu i automatyzacja workspace'u
← Powrót do React Academy