Source map
- Node.js kursu
- Orta seviye
- Ders 92/116
- 5 dk
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
// 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
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
node --enable-____-maps dosya.js
node --enable-source-maps dosya.js
Açıklama: --enable-source-maps bayrağı source map desteğini açar.
2 Source map neyi gösterir?
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ı |