CodeBlanks Logo Icon CodeBlanks

Meydan okuma 3: tsconfig

Çok projeli bir monorepo yapısını gerektiren bir görev çözersin.

Çok projeli tsconfig

Bu meydan okumada çok projeli bir tsconfig yapısını işleyeceksin. ts.parseConfigFileTextToJson ile bir tsconfig JSON metnini parse et, compilerOptions ve references alanlarına eriş. Monorepo yapılandırmasını okuyup analiz edeceksin.

Uygulama Hedef değeri oku

Bir tsconfig JSON metni ver: hedef "ES2020", strict true, include dizisinde src/**/*.ts olsun. ts.parseConfigFileTextToJson ile çözümle. Derleyici seçeneklerinden hedef değeri yazdır.

Başlangıç kodu

index.ts
import * as ts from "typescript";

// Bir tsconfig JSON metni ver: hedef "ES2020", strict true
// include dizisinde "src/**/*.ts" olsun
// parseConfigFileTextToJson ile çözümle
// Derleyici seçeneklerinden hedef değeri yazdır

// kodunu buraya yaz

Örnek çözüm

index.ts
import ts from "typescript";

const configText = '{"compilerOptions": {"target": "ES2020", "strict": true}, "include": ["src/**/*.ts"]}';
const result = ts.parseConfigFileTextToJson("tsconfig.json", configText);
const target = (result.config?.compilerOptions as { target?: string })?.target;
console.log(target);

Beklenen çıktı

ES2020

Uygulama Referans say

Bir tsconfig JSON metni ver: üç proje referansı içersin, path değerleri ./shared, ./app, ./utils. ts.parseConfigFileTextToJson ile çözümle. Referans dizisinin uzunluğunu yazdır.

Başlangıç kodu

index.ts
import * as ts from "typescript";

// Bir tsconfig JSON metni ver: üç proje referansı içersin
// path değerleri: "./shared", "./app", "./utils"
// parseConfigFileTextToJson ile çözümle
// Referans dizisinin uzunluğunu yazdır

// kodunu buraya yaz

Örnek çözüm

index.ts
import ts from "typescript";

const configText = '{"references": [{"path": "./shared"}, {"path": "./app"}, {"path": "./utils"}]}';
const result = ts.parseConfigFileTextToJson("tsconfig.json", configText);
const refs = result.config?.references as Array<{ path: string }>;
console.log(refs.length);

Beklenen çıktı

3

Soru ve cevaplar

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

1 Bir tsconfig JSON metnini parse etmek için hangi API kullanılır?

  • ts.parseTsConfig
  • ts.parseConfigFileTextToJson Doğru cevap
  • ts.loadConfig
  • ts.readTsConfig

Açıklama: ts.parseConfigFileTextToJson bir dosya adı ve config metni alır, parse edilmiş JSON döndürür. readTsConfig, parseTsConfig ve loadConfig diye API yoktur.

2 Referans dizisine eriş

Soru
const refs = result.config?.____ as Array<{ path: string }>;
Cevap
const refs = result.config?.references as Array<{ path: string }>;

Açıklama: tsconfig'te proje referansları references dizisinde verilir; projects, depends ve imports tsconfig alanları değildir.

3 tsconfig parçaları

Kavram Anlamı
references Proje bağımlılıkları
compilerOptions Derleyici ayarları
include Dosya desenleri
parseConfigFileTextToJson Config metnini parse eder

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