CodeBlanks Logo Icon CodeBlanks

build_runner

build_runner ile kod üretimini öğrenirsin.

build_runner

build_runner, Dart için kod üretim aracıdır. Kaynak dosyalarını okur, Builder sınıflarını çalıştırır ve üretilen .g.dart dosyalarını yazar.

Çalıştırma: dart run build_runner build. İzleme kipi için --watch bayrağı eklenir; kaynak değişince otomatik yeniden üretim yapar.

Yapılandırma build.yaml dosyasındadır: hangi Builder'ların hangi dosyalarda çalışacağını belirtir. Üretilen dosyalar elle düzenlenmez.

build.yaml ve hedefler

build.yaml iki ana bölüm içerir: targets (hangi paketlerde üretim yapılacağı) ve builders (hangi Builder'ların etkin olduğu).

Örnek: builders: my_builder|my_builder: enabled: true. Bu, my_builder paketindeki Builder'ı açar.

Üretilen dosya adları kaynaktan türetilir: user.dart → user.g.dart. .g.dart uzantısı üretilen dosyayı işaretler.

Uygulama BuildConfig tanımla

Bir BuildConfig sınıfı tanımla: final List<String> inputExtensions ve final String outputExtension alanları, BuildConfig(this.inputExtensions, this.outputExtension) kurucusu. main içinde final config = BuildConfig(['.dart'], '.g.dart'); yarat; config.inputExtensions ve config.outputExtension yazdır.

Başlangıç kodu

main.dart
void main() {
  // BuildConfig sınıfını tanımla (inputExtensions, outputExtension)
  // bir BuildConfig yarat; inputExtensions ve outputExtension yazdır
}

Örnek çözüm

main.dart
class BuildConfig {
  final List<String> inputExtensions;
  final String outputExtension;
  BuildConfig(this.inputExtensions, this.outputExtension);
}

void main() {
  final config = BuildConfig(['.dart'], '.g.dart');
  print(config.inputExtensions);
  print(config.outputExtension);
}

Beklenen çıktı

[.dart]
.g.dart

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 dart run build_runner build ne yapar?

  • Birim testleri çalıştırır
  • Builder'ları çalıştırıp kod üretir Doğru cevap
  • AOT derleme yapar
  • Kaynak dosyayı biçimlendirir

Açıklama: build_runner Builder'ları çalıştırır ve .g.dart dosyaları üretir.

2 Builder arayüzü

Soru
class MyBuilder implements ____ {
  Future<void> build(BuildStep s) async {}
}
Cevap
class MyBuilder implements Builder {
  Future<void> build(BuildStep s) async {}
}

Açıklama: bir kod üreteci Builder arayüzünü uygular.

3 build_runner parçalarını eşleştir

Kavram Anlamı
build_runner Kod üretici araç
build.yaml Yapılandırma
build Üretim alt komutu
.g.dart Üretilen dosya

Uzman bölümündeki tüm dersler