0Pricing
Dart Academy · Lekcja

Generowanie kodu za pomocą build_runner

Generowanie kodu szablonowego na podstawie adnotacji

Generowanie kodu za pomocą build_runner to bezpłatna lekcja Dart 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 Dart Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Dart Academy zawiera 4 lekcji w sumie.

Dlaczego generować kod

Niektóry kod, na przykład analizowanie JSON, składa się z powtarzalnego kodu standardowego. Generowanie kodu tworzy go za Państwa na podstawie adnotacji, dzięki czemu można zachować dokładność i szybkość pracy. ⚙️

Poznajmy build_runner

build_runner to narzędzie języka Dart, które uruchamia generatory kodu dla projektu. Odczytuje pliki źródłowe, wyszukuje adnotacje i generuje nowe pliki.

Zależność deweloperska

Dodaje Pan/Pani build_runner w sekcji dev_dependencies pliku pubspec.yaml, ponieważ jest uruchamiany podczas kompilacji i nigdy nie jest dołączany do aplikacji.

dev_dependencies:
  build_runner: ^2.4.0

Wygenerowany plik części

Generatory zapisują wynik w pliku siostrzanym. Odwołuje się Pan/Pani do niego za pomocą dyrektywy part, której nazwa zgodnie z konwencją kończy się na .g.dart.

part 'user.g.dart';

Uruchomienie kompilacji

Jednorazowe generowanie uruchamia Pan/Pani poleceniem build. Skanuje ono kod i tworzy lub odświeża każdy plik .g.dart.

dart run build_runner build

Tryb watch

Podczas tworzenia aplikacji tryb watch automatycznie ponownie generuje pliki po każdym zapisie. Dzięki temu wygenerowane pliki pozostają zsynchronizowane bez ręcznego ponawiania polecenia.

dart run build_runner watch

Obsługa konfliktów z nieaktualnymi plikami

Jeśli wynik generowania koliduje ze starymi plikami, należy dodać --delete-conflicting-outputs. Usuwa ono nieaktualne wygenerowane pliki, dzięki czemu świeża kompilacja może się zakończyć powodzeniem.

dart run build_runner build --delete-conflicting-outputs

Adnotacje sterują generowaniem

Generatory działają tylko na deklaracjach, które zostały opatrzone adnotacją. Adnotacja informuje builder, którą klasę należy przetworzyć i jaki kod wygenerować.

Nie należy edytować wygenerowanych plików

Każdy plik .g.dart należy traktować jako tylko do odczytu. Kolejna kompilacja nadpisze wprowadzone zmiany, dlatego należy edytować kod źródłowy i adnotacje.

Zatwierdzać czy ignorować

Zespoły decydują, czy zatwierdzać wygenerowane pliki, czy dodać je do .gitignore i ponownie generować w CI. Niezależnie od wyboru należy przyjąć jedną zasadę i konsekwentnie jej przestrzegać.

Szerszy ekosystem

Wiele pakietów integruje się z build_runner, na przykład json_serializable i freezed. Korzystają one ze wspólnego potoku builder, więc jedno polecenie uruchamia je wszystkie.

Szybkie sprawdzenie

Które polecenie ponownie generuje kod po każdym zapisaniu pliku?

Podsumowanie

build_runner przekształca adnotacje w wygenerowane pliki .g.dart. Należy dodać go do dev_dependencies, uruchamiać build lub watch i nigdy nie edytować wyniku. 🎉

Często zadawane pytania

Czy lekcja „Generowanie kodu za pomocą build_runner” jest bezpłatna?

Tak — pełny tekst „Generowanie kodu za pomocą build_runner” 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 Dart Academy, przejdź na CoddyKit PRO. Kurs Dart Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Generowanie kodu za pomocą build_runner”?

Generowanie kodu szablonowego na podstawie adnotacji Ćwiczysz Dart 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ąć Dart Academy?

Nie wymagamy żadnego doświadczenia. Dart 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 „Generowanie kodu za pomocą build_runner”?

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 Dart Academy?

Tak. Każda lekcja Dart 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. Wbudowane adnotacje: override, deprecated
  2. Pisanie własnych adnotacji
  3. Generowanie kodu za pomocą build_runner
  4. json_serializable w praktyce
← Powrót do Dart Academy