CodeBlanks Logo Icon CodeBlanks

Emit seçenekleri

outDir, noEmit ve emit seçeneklerini öğrenirsin.

Emit seçenekleri nedir?

Emit seçenekleri, TypeScript'in derleme sonunda hangi dosyaları üreteceğini belirler. outDir çıktı dizinini, noEmit üretimi tamamen kapatır, emitDeclarationOnly ise yalnızca .d.ts dosyalarını üretir. Bu ayarlar, derlemenin çıktısını denetlemenin temel yoludur.

{
  "compilerOptions": {
    "outDir": "dist",
    "noEmit": false
  }
}

noEmit: true yalnızca tür denetimi için kullanılır; çıktı üretmez.

outDir ve rootDir

outDir, derlenen dosyaların yazılacağı dizini belirler. rootDir ise kaynak dosyaların kök dizinini tanımlar; bu, çıktı dizin yapısının kaynak yapısını yansıtmasını sağlar. İkisi birlikte kullanıldığında, çıktı yolu outDir altında rootDir'e göre kurulur.

{
  "compilerOptions": {
    "rootDir": "src",
    "outDir": "dist"
  }
}
// src/index.ts → dist/index.js

rootDir belirtilmezse TypeScript kökü otomatik çıkarır.

Uygulama Çıktı yolunu hesapla

Bir computeOutputPath fonksiyonu yaz: sourcePath, rootDir ve outDir alsın. Kaynak yolundan rootDir önekini çıkarıp outDir önini eklesin ve .ts uzantısını .js'ye çevirsin. computeOutputPath("src/index.ts", "src", "dist") sonucunu yazdır.

Başlangıç kodu

index.ts
// computeOutputPath: kaynak yolundan çıktı yolunu üretir
// rootDir önekini çıkar
// outDir önekini ekle
// .ts uzantısını .js'ye çevir
// "src/index.ts", "src", "dist" için sonucu yazdır

Örnek çözüm

index.ts
function computeOutputPath(sourcePath: string, rootDir: string, outDir: string): string {
  const relative = sourcePath.startsWith(rootDir + "/")
    ? sourcePath.slice(rootDir.length + 1)
    : sourcePath;
  const withJs = relative.replace(/\.ts$/, ".js");
  return outDir + "/" + withJs;
}

console.log(computeOutputPath("src/index.ts", "src", "dist"));

Beklenen çıktı

dist/index.js

Soru ve cevaplar

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

1 `noEmit: true` ne yapar?

  • Hiçbir dosya üretmez, yalnızca tür denetimi yapar Doğru cevap
  • Source map üretimini açar
  • Çıktı dizinini değiştirir
  • Yalnızca .d.ts üretir

Açıklama: noEmit: true çıktı üretimini tamamen kapatır ve yalnızca tür denetimi yapar; outDir dizini değiştirir, emitDeclarationOnly yalnızca .d.ts üretir, sourceMap ise harita üretir.

2 Çıktı dizinini ayarla

Soru
{
  "compilerOptions": {
    "____": "dist"
  }
}
Cevap
{
  "compilerOptions": {
    "outDir": "dist"
  }
}

Açıklama: outDir çıktı dizinini belirler; rootDir kaynak kökü, noEmit üretimi kapatır, emit ise geçerli bir seçenek adı değildir.

3 Emit parçaları

Kavram Anlamı
outDir çıktı dizinini belirler
rootDir kaynak kök dizinini belirler
noEmit üretimi tamamen kapatır
emitDeclarationOnly yalnızca .d.ts üretir

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