CodeBlanks Logo Icon CodeBlanks

Source map

Source map ile transpile edilmiş kodda hata ayıklamayı öğrenirsin.

Source map nedir?

Node.js genellikle TypeScript veya Babel ile derlenen (transpile) kod çalıştırır. Derlenmiş kod satır numaraları orijinal kaynakla uyuşmaz; hata yığınları (stack trace) anlamsız görünür. Source map bu eşlemeyi tutar ve ayıklayıcıya orijinal kaynağı gösterir.

node --enable-source-maps dosya.js bayrağı source map desteğini açar. Hata yığınlarında derlenmiş konum yanında orijinal konum da görünür: at fonksiyonAdı (kaynak.ts:10:5). Bu, TypeScript projelerinde hatayı orijinal dosyada bulmayı kolaylaştırır. Source map dosyaları genellikle .js.map uzantısındadır ve derleme sırasında üretilir. Node.js bunları otomatik bulur ve yükler; ek yapılandırma gerekmez.

Hata yığınlarını okuma

Source map etkinleştirildiğinde hata yığınları iki konum gösterir: derlenmiş (dist/dosya.js:42:7) ve orijinal (src/dosya.ts:10:5). Sen orijinal konuma bakarak hatayı düzeltirsin.

Örnek yığın: Error: geçersiz değer\n at calculate (src/hesap.ts:10:5)\n at ana (src/index.ts:25:3). Bu, hatanın hesap.ts'in 10. satırında originating edildiğini ve index.ts'in 25. satırından çağrıldığını gösterir. Source map olmadan yığın yalnızca dist/hesap.js gösterirdi; bu dosya derlenmiş olduğu için okunması zordur. Source map ayrıca kesme noktalarını da orijinal satırlara koymanı sağlar; DevTools otomatik eşler.

Uygulama Hata yığını oluşturan betik yaz

function calculate(value) { if (value < 0) throw new Error("Negatif değer"); return value * 2; } tanımla. try { calculate(5); calculate(-1); } ile çağır. catch (e) { console.log("Hata: " + e.message); } ile yakala. console.log("Tamamlandı") ekle.

Başlangıç kodu

index.js
// calculate fonksiyonunu tanımla
// buraya yaz

// try ile çağır
// buraya yaz

// catch ile yakala
// buraya yaz

// "Tamamlandı" yazdır
// buraya yaz

Örnek çözüm

index.js
function calculate(value) {
  if (value < 0) throw new Error("Negatif değer");
  return value * 2;
}
try {
  calculate(5);
  calculate(-1);
} catch (e) {
  console.log("Hata: " + e.message);
}
console.log("Tamamlandı");

Beklenen çıktı

Hata: Negatif değer
Tamamlandı

Soru ve cevaplar

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

1 source map bayrağını tamamla

Soru
node --enable-____-maps dosya.js
Cevap
node --enable-source-maps dosya.js

Açıklama: --enable-source-maps bayrağı source map desteğini açar.

2 Source map neyi gösterir?

index.js
Error at calculate (src/calc.ts:10:5)
  • Yalnızca derlenmiş dosya konumunu
  • Yalnızca bellek adresini
  • Çalışma süresini
  • Orijinal kaynak dosyasındaki konumu Doğru cevap

Açıklama: Source map orijinal kaynak konumunu gösterir.

3 Kavramı rolüne eşle

Kavram Anlamı
source map Orijinal kaynağa eşleme
--enable-source-maps Bayrağı açar
.js.map Map dosya uzantısı
stack trace Çağrı yığını

Orta seviye bölümündeki tüm dersler