CodeBlanks Logo Icon CodeBlanks

Build mode

tsc --build ile proje derlemeyi öğrenirsin.

Build mode nedir?

tsc --build, projeleri bağımlılık sırasıyla derleyen ve artımlı önbellek kullanan bir moddur. Referans alınan projelerin derlenebilmesi için composite: true bayrağı gerekir; incremental: true ise .tsbuildinfo dosyasıyla yeniden derleme maliyetini düşürür.

// tsconfig.json
{
  "compilerOptions": {
    "composite": true,
    "incremental": true,
    "outDir": "dist"
  }
}

Build modu yalnızca değişen projeleri yeniden derler; bu yüzden büyük monorepo'larda hız kazandırır.

composite ve incremental

composite: true, bir projenin başka projeler tarafından referans alınabilmesini sağlar; ayrıca declaration ve outDir ayarlarını zorunlu kılar. incremental: true ise derleme bilgilerini .tsbuildinfo dosyasına yazar ve sonraki derlemelerde yalnızca değişen dosyaları işler.

{
  "compilerOptions": {
    "composite": true,
    "incremental": true,
    "declaration": true,
    "outDir": "dist"
  }
}

Composite olmayan bir proje referans alınamaz; build modu hata verir.

Uygulama Build config doğrula

Bir validateBuildConfig fonksiyonu yaz: config nesnesinin composite ve incremental alanlarını kontrol etsin; eksikse hata dizisine ekleme yapsın. { composite: true, incremental: true } config'i için hata sayısını yazdır.

Başlangıç kodu

index.ts
// validateBuildConfig: build modu için config'i doğrula
// composite ve incremental alanlarını kontrol et
// eksikse hata dizisine ekle
// hata sayısını yazdır

Örnek çözüm

index.ts
function validateBuildConfig(config: { composite?: boolean; incremental?: boolean }): string[] {
  const errors: string[] = [];
  if (!config.composite) errors.push("composite must be true");
  if (!config.incremental) errors.push("incremental recommended");
  return errors;
}

const config = { composite: true, incremental: true };
console.log(validateBuildConfig(config).length);

Beklenen çıktı

0

Soru ve cevaplar

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

1 `tsc --build` hangi sırada derleme yapar?

  • Yalnızca kök projeyi derler
  • Rastgele sırayla paralel derler
  • Bağımlılık sırasıyla, değişen projeleri yeniden derler Doğru cevap
  • Alfabetik sırayla tüm projeleri derler

Açıklama: Build modu önce bağımlılıkları çözer, sonra bağımlılık sırasıyla derler ve yalnızca değişen projeleri yeniden derler; alfabetik veya rastgele değildir.

2 Composite'i etkinleştir

Soru
{
  "compilerOptions": {
    "composite": ____,
    "declaration": true
  }
}
Cevap
{
  "compilerOptions": {
    "composite": true,
    "declaration": true
  }
}

Açıklama: composite bayrağı boolean true değer alır; false referans alınabilirliği kapatır, null ve "yes" geçerli değerler değildir.

3 Build modu parçaları

Kavram Anlamı
tsc --build projeleri bağımlılık sırasıyla derler
composite: true referans alınabilirliği açar
incremental: true .tsbuildinfo önbelleğini açar
.tsbuildinfo artımlı derleme bilgisi

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