CodeBlanks Logo Icon CodeBlanks

Özet - Emit

Emit seçenekleriyle bir kütüphane derleme yapılandırması yazarsın.

Özet: kütüphane derleme yapılandırması

Bir kütüphane derleme yapılandırması dört emit parçasını birleştirir: outDir ile çıktı dizinini belirler, declaration: true ile .d.ts üretir, sourceMap: true ile hata ayıklama haritasını ekler ve gerekiyorsa emitDecoratorMetadata: true ile dekoratör metadata'sını çalışma zamanına taşır. Bu dördü birlikte, tüketiciler için kullanılabilir ve hata ayıklanabilir bir kütüphane üretir.

{
  "compilerOptions": {
    "outDir": "dist",
    "declaration": true,
    "sourceMap": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true
  }
}

Bu ayarlar, npm'de yayınlanan kütüphanelerin temel iskeletidir.

Uygulama Kütüphane config'i doğrula

Bir validateLibraryConfig fonksiyonu yaz: config nesnesinin declaration ve outDir alanlarını zorunlu, sourceMap ve emitDecoratorMetadata alanlarını isteğe bağlı kontrol etsin. Eksik zorunlu alanlar için hata dizisine ekleme yapsın. { declaration: true, outDir: "dist", sourceMap: true } config'i için hata sayısını yazdır.

Başlangıç kodu

index.ts
// validateLibraryConfig: kütüphane config'ini doğrular
// declaration ve outDir zorunlu
// sourceMap ve emitDecoratorMetadata isteğe bağlı
// eksik zorunlu alan için hata ekle
// hata sayısını yazdır

Örnek çözüm

index.ts
type LibraryConfig = {
  declaration?: boolean;
  outDir?: string;
  sourceMap?: boolean;
  emitDecoratorMetadata?: boolean;
};

function validateLibraryConfig(config: LibraryConfig): string[] {
  const errors: string[] = [];
  if (!config.declaration) errors.push("declaration must be true");
  if (!config.outDir) errors.push("outDir must be set");
  return errors;
}

const config = { declaration: true, outDir: "dist", sourceMap: true };
console.log(validateLibraryConfig(config).length);

Beklenen çıktı

0

Soru ve cevaplar

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

1 Bir kütüphane yapılandırması hangi seçenekleri içerir?

  • Sadece noEmit ve inlineSourceMap
  • Sadece emitDeclarationOnly ve rootDir
  • Sadece outDir ve noEmit
  • outDir, declaration, sourceMap ve gerektiğinde emitDecoratorMetadata Doğru cevap

Açıklama: Kütüphane yapılandırması çıktı, bildirim, source map ve gerekirse dekoratör metadata'sını birleştirir; noEmit çıktı üretmediği için kütüphane için uygun değildir.

2 Kütüphane için bildirim üret

Soru
{
  "compilerOptions": {
    "outDir": "dist",
    "____": true
  }
}
Cevap
{
  "compilerOptions": {
    "outDir": "dist",
    "declaration": true
  }
}

Açıklama: Kütüphane için bildirim üretmek üzere declaration kullanılır; noEmit çıktı üretmez, emitDeclarationOnly yalnızca .d.ts üretir, sourceMap ise haritadır.

3 Kütüphane yapılandırma parçaları

Kavram Anlamı
outDir çıktı dizinini belirler
declaration: true .d.ts üretir
sourceMap: true hata ayıklama haritası
emitDecoratorMetadata: true dekoratör tür bilgisini taşır

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