0Pricing
TypeScript Academy · Ders

Monorepo'larda Artımlı Derlemeler ve Önbellek

Artımlı derleme ve Turborepo ile derleme sürelerini iyileştirin

Monorepo'larda Artımlı Derlemeler ve Önbellek, CoddyKit'te ücretsiz bir TypeScript Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, TypeScript Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. TypeScript Academy kursu toplamda 4 dersten oluşur.

Artımlı Derlemeler Neden Önemlidir?

Büyük monorepo'larda her değişiklikte her paketi yeniden derlemek yavaştır. Artımlı derlemeler neyin değiştiğini algılar ve yalnızca etkilenen paketleri yeniden derler.

# Without incremental: all 20 packages rebuild every time
# With incremental: only 2 changed packages rebuild

TypeScript Artımlı Modu

Hızlı yeniden çalıştırmalar için önceki derleme durumunu önbelleğe alan bir .tsbuildinfo dosyası üretmek üzere tsconfig içinde "incremental": true seçeneğini etkinleştirin.

{
  "compilerOptions": {
    "incremental": true,
    "tsBuildInfoFile": "./.tsbuildinfo"
  }
}

Proje Başvuruları için tsc --build

tsc --build, proje başvurusu kullanan çalışma alanlarında doğası gereği artımlıdır; zaman damgalarını izler ve güncel paketleri atlar.

# First build: all packages compiled
tsc --build
# Second build: only changed packages compiled
tsc --build
# [12:00:01 PM] Project 'packages/core' is up to date

Turborepo Önbelleğe Alma

Turborepo, görev çıktılarını (örneğin dist/) önbelleğe alır ve değişmemiş girdiler için bu çıktıları önbellekten geri yükler; bunu uzak önbellek aracılığıyla ekip genelinde yapar.

// turbo.json
{
  "pipeline": {
    "build": {
      "dependsOn": ["^build"],
      "outputs": ["dist/**", ".tsbuildinfo"]
    }
  }
}

Turborepo ile Uzak Önbelleğe Alma

Kimsenin başka birinin zaten derlediği şeyi yeniden derlememesi için derleme önbelleğini sürekli tümleştirme makineleri ve ekip üyeleri arasında paylaşın.

# Link to Vercel remote cache
npx turbo login
npx turbo link

Nx Hesaplama Önbelleği

Nx, proje bağımlılık grafiğine dayalı ayrıntılı etkilenen analizle benzer bir önbelleğe alma olanağı sağlar.

# Nx: only test affected projects
npx nx affected --target=test --base=main

Önbellek Girdileri ve Çıktıları

Doğru önbelleğe alma için tüm girdileri (kaynak dosyaları, ortam değişkenleri) ve çıktıları (dist dizinleri, tsbuildinfo) derleme aracı yapılandırmanızda bildirin.

// turbo.json with inputs
{
  "pipeline": {
    "build": {
      "inputs": ["src/**", "tsconfig.json"],
      "outputs": ["dist/**"]
    }
  }
}

Önbelleği Geçersiz Kılma

Girdiler değiştiğinde önbellekler geçersiz kılınır. Gereksiz yeniden derlemeleri önlemek için değişken dosyaları (günlükler veya zaman damgaları gibi) girdi olarak eklemeyin.

# Force rebuild even if cached
turbo run build --force

Sürekli Tümleştirme

Önceki derleme yapıtlarını yeniden kullanarak PR derlemelerinin hızlı olması için sürekli tümleştirmeyi (GitHub Actions, CircleCI) uzak önbelleğe bağlayın.

# .github/workflows/ci.yml
- name: Build
  run: npx turbo build
  env:
    TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
    TURBO_TEAM: my-team

Yalnızca Artımlı Tür Denetimi

Çıktı üretmeyi atlayan, ancak yine de önbelleğe almanın avantajlarından yararlanan hızlı ve yalnızca tür denetimi yapan sürekli tümleştirme adımları için tsc --noEmit --incremental kullanın.

npx tsc --noEmit --incremental
# Quick type check with .tsbuildinfo cache

Özet: Artımlı Derlemeler

Monorepo'larda artımlı derlemeler, her değişiklikteki derleme işini en aza indirmek için TypeScript'in tsBuildInfo ve tsc --build özelliklerini Turborepo veya Nx önbelleğe almasıyla birleştirir.

Kısa Denetim

TypeScript, artımlı derlemeleri etkinleştirmek için hangi dosyayı üretir?

Öğrendikleriniz

Artımlı derlemeler, değişmemiş paketleri atlamak için TypeScript'in .tsbuildinfo dosyasını ve tsc --build komutunu kullanır. Turborepo ve Nx, tüm monorepo genelinde bunu uzak önbelleğe alma ve yalnızca etkilenenleri analiz etme özellikleriyle genişletir.

Sıkça Sorulan Sorular

“Monorepo'larda Artımlı Derlemeler ve Önbellek” dersi ücretsiz mi?

Evet — “Monorepo'larda Artımlı Derlemeler ve Önbellek” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve TypeScript Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. TypeScript Academy kursu toplamda 4 dersten oluşur.

“Monorepo'larda Artımlı Derlemeler ve Önbellek” dersinde ne öğreneceğim?

Artımlı derleme ve Turborepo ile derleme sürelerini iyileştirin TypeScript Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

TypeScript Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te TypeScript Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.

“Monorepo'larda Artımlı Derlemeler ve Önbellek” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu TypeScript Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her TypeScript Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. TypeScript Proje Başvurularını Açıklama
  2. TypeScript ile pnpm Çalışma Alanları
  3. Paylaşılan Türler Paketi Stratejisi
  4. Monorepo'larda Artımlı Derlemeler ve Önbellek
← TypeScript Academy Sayfasına Dön