Javascript .map dosyaları - javascript kaynak haritaları


358

Son zamanlarda .js.mapbazı JavaScript kitaplıklarıyla ( Angular gibi ) gönderilen uzantıya sahip dosyaları gördüm ve bu sadece kafamda birkaç soruya neden oldu:

  • Bu ne için? Angular'daki adamlar neden .js.mapdosya teslim ediyorlar ?
  • Bir JavaScript geliştiricisi olarak angular.min.js.mapdosyayı nasıl kullanabilirim ?
  • .js.mapJavaScript uygulamalarım için dosya oluşturmayı önemsemeli miyim ?
  • Nasıl yaratılır? Bir göz attım angular.min.js.mapve garip biçimlendirilmiş dizelerle doluydu, bu yüzden elle oluşturulmadığını varsayıyorum.

Yanıtlar:


552

.mapİçin dosyalardır jsve css(ve şimdi tsçok) dosyaları minified edildiğini. Bunlara SourceMaps denir. Angular.js dosyası gibi bir dosyayı küçültüldüğünüzde binlerce satırlık güzel kod alır ve yalnızca birkaç satır çirkin kod haline dönüşür. Umarım, kodunuzu üretime gönderirken, tam, sonlandırılmamış sürüm yerine küçültülmüş kodu kullanıyorsunuzdur. Uygulamanız hazır olduğunda ve bir hata olduğunda, sourcemap çirkin dosyanızı almanıza yardımcı olacak ve kodun orijinal sürümünü görmenize izin verecektir. Sourcemap'e sahip değilseniz, herhangi bir hata en iyi ihtimalle şifreli görünecektir.

CSS dosyaları için aynıdır. Bir SASS veya LESS dosyası alıp CSS'ye derledikten sonra orijinal formuna benzemez. Kaynak haritalarını etkinleştirirseniz, değiştirilen durum yerine dosyanın orijinal durumunu görebilirsiniz.

Size sırayla soruları cevaplamak için:

  • Bu ne için? Geliştirilmiş kodun referansını kaldırmak için
  • Bir geliştirici bunu nasıl kullanabilir? Bir üretim uygulamasında hata ayıklamak için kullanırsınız. Geliştirme modunda Angular'ın tam sürümünü kullanabilirsiniz. Üretimde, minimize edilmiş versiyonu kullanırsınız.
  • Bir js.map dosyası oluşturmayı ummalı mıyım? Üretim kodunda daha kolay hata ayıklamayı önemsiyorsanız, evet, yapmanız gerekir.
  • Nasıl yaratılır? Oluşturma zamanında oluşturulur. Diğer dosyalarda olduğu gibi .map dosyanızı oluşturabilen oluşturma araçları vardır. https://github.com/gruntjs/grunt-contrib-uglify/issues/71

Umarım bu mantıklı gelir.


20
harita dosyasının siz arayana kadar gönderilmeyeceğini unutmayın, bu beni
şaşırttı.

2
Teşekkürler aaron, bu Sourcemap için gördüğüm daha iyi açıklamalardan biridir. Yudumda kullanıyorum ve yudum hakkında her şeyi öğrendim ve kaynak haritaların nasıl kullanıldığını merak ediyordum, şimdi onu kullanarak kendimi güvende hissedebiliyorum. Çoğu gulp eklentisi, bir yıl önce bazılarına karşı değil, şimdi de uyumludur. Sadece mantıklı olduğunu söylemek istedim!
Eric Bishard

@frosty Geliştirilmiş kodun referansını kaldırmak için . Bunu açıklayabilir misiniz lütfen? Bir .js.mapdosya, el yapımı dosya ile küçültülmüş bir dosya arasında (genellikle başvuru adı verilir ) bir ilişki sürdürmüyor mu?
Mohammed Zameer

1
@ öğrenci de-referans diyor çünkü küçültülmüş koda başvurmak istemiyorum. Minimize edilmiş ve eğer ona bakarsam, değersizin yanında. Ancak, orijinal kaynağına geri atıfta bulunabilseydi, bu destansı olurdu. Ve tam bir kaynak haritası budur. Umarım bu yardımcı olur.
ayaz

Bu cevabı seviyorum (teşekkür ederim), ama 420 beğeni var ... kırıyor muyum?
Eric Reed


31
  • Bir geliştirici bunu nasıl kullanabilir?

Yorumlarda bunun cevabını bulamadım, işte nasıl kullanılabilir:

  1. Bağlantı vermeyin index.html dosyasında js.map dosyası (buna gerek yok)
  2. Küçültme araçları (iyi olanlar) .min.js dosyanıza bir yorum ekler:

    // # sourceMappingURL = DosyaAdınız.min.js.map

bu da .map dosyanızı bağlar .

Ne zaman min.js ve js.map dosyaları hazır ...

  1. Chrome: Geliştirici araçlarını açın , Kaynaklar sekmesine gidin, Küçültülmemiş uygulama dosyalarının tutulduğu kaynaklar klasörünü göreceksiniz .

14

Harita dosyası, küçültülmemiş dosyayı küçültülmüş dosyayla eşler. Değiştirilmemiş dosyada değişiklik yaparsanız, değişiklikler otomatik olarak dosyanın küçültülmüş sürümüne yansıtılır.


2

Sadece harita dosyalarını nasıl kullanacağınıza eklemek için. Ubuntu için krom kullanıyorum ve kaynaklara gidip bir dosyaya tıklarsam, bir harita dosyası varsa, orijinal dosyayı görüntüleyebileceğimi ve nasıl yapılacağını söyleyen bir mesaj gelir.

Bugün çalıştığım açısal dosyalar için

Ctrl-P ve orijinal dosyaların bir listesi küçük bir pencerede görüntülenir.

Daha sonra incelemek istediğim dosyayı görüntülemek ve sorunun nerede olabileceğini kontrol etmek için listeye göz atabilirim.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.