Project structure
- TypeScript kursu
- Uzman
- Ders 25/35
- 4 dk
Project references ile performansı öğrenirsin.
Project references ile performans
Project references, büyük bir projeyi daha küçük, bağımsız derlenen alt projelere böler. Yalnızca değişen alt proje ve ona bağımlı olanlar yeniden derlenir; bu, büyük kod tabanlarında derleme süresini ciddi azaltır. Her alt proje composite: true ve kendi .tsbuildinfo önbelleğine sahiptir.
// app → core → utils
// utils değişirse: utils + core + app
// app değişirse: yalnız appBuild modu bağımlılık sırasını otomatik çözer.
Artımlı önbellek
Her alt proje, .tsbuildinfo dosyasına önceki derlemenin tür grafiğini yazar. Bir sonraki derlemede yalnızca değişen dosyalar ve onlardan etkilenen türler yeniden çözümlenir. Bu, büyük projelerde dakikalar yerine saniyeler kazandırır.
// core/.tsbuildinfo
// son derlemenin tür grafiğiÖnbellek silinirse tam yeniden derleme yapılır.
Uygulama Yeniden derleme kapsamını hesapla
Bir computeRebuildScope fonksiyonu yaz: değişen projeler ve ters bağımlılık haritasını alsın. Değişen proje ve ona bağımlı olanları bir kümede toplayıp sıralı dizi olarak döndürsün. core değiştiğinde ve core → app bağımlılığı olduğunda app, core çıktısını üret.
Başlangıç kodu
// değişen projeleri ve bağımlılarını bul
// bir kümede topla
// sıralı diziye çevir
// sonucu yazdırÖrnek çözüm
function computeRebuildScope(changed: string[], reverseDeps: Record<string, string[]>): string[] {
const rebuild = new Set<string>(changed);
for (const file of changed) {
for (const dependent of reverseDeps[file] || []) {
rebuild.add(dependent);
}
}
return Array.from(rebuild).sort();
}
const changed = ["core"];
const reverseDeps = { core: ["app"], utils: ["core"] };
console.log(computeRebuildScope(changed, reverseDeps).join(", "));Beklenen çıktı
app, core
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Project references derleme süresini nasıl iyileştirir?
- Tür denetimini tamamen kapatır
- Paket boyutunu küçültür
- Yalnızca değişen ve bağımlı projeleri yeniden derler Doğru cevap
- tsconfig dosyasına olan ihtiyacı kaldırır
Açıklama: References, değişen proje ve bağımlılarını yeniden derleyerek artımlı derleme sağlar; tür denetimi kapanmaz, paket boyutu değişmez, tsconfig hala zorunludur.
2 Artımlı bayrak
{
"compilerOptions": {
"composite": true,
"____": true
}
}
{
"compilerOptions": {
"composite": true,
"incremental": true
}
}
Açıklama: Artımlı derleme için incremental kullanılır; increment, cache ve fast geçerli seçenek adları değildir.
3 Yapı parçaları
| Kavram | Anlamı |
|---|---|
Project references |
projeyi alt projelere böler |
.tsbuildinfo |
tür grafiği önbelleği |
composite: true |
referans alınabilirliği açar |
Build modu |
bağımlılık sırasını çözer |