Build mode
- TypeScript kursu
- Uzman
- Ders 13/35
- 4 dk
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
// 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
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
{
"compilerOptions": {
"composite": ____,
"declaration": true
}
}
{
"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 |