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.0Wygenerowany 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 buildTryb 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 watchObsł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-outputsAdnotacje 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
- Wbudowane adnotacje: override, deprecated
- Pisanie własnych adnotacji
- Generowanie kodu za pomocą build_runner
- json_serializable w praktyce