Ostatnio widziałem pliki z .js.map
rozszerzeniem dostarczane z niektórymi bibliotekami JavaScript (takimi jak Angular ), a to tylko wywołało kilka pytań:
- Po co to jest? Dlaczego faceci z Angular dbają o dostarczenie
.js.map
pliku? - Jak mogę (jako programista JavaScript) korzystać z
angular.min.js.map
pliku? - Czy powinienem dbać o tworzenie
.js.map
plików dla moich aplikacji JavaScript? - Jak powstaje? Rzuciłem okiem
angular.min.js.map
i było wypełnione dziwnie sformatowanymi ciągami, więc zakładam, że nie jest tworzone ręcznie.
javascript
angularjs
source-maps
Muhammad Reda
źródło
źródło
Odpowiedzi:
Te
.map
pliki są dlajs
icss
(i terazts
też) pliki, które zostały minified. Nazywa się je SourceMaps. Po zminimalizowaniu pliku, takiego jak plik angular.js, zajmuje on tysiące wierszy ładnego kodu i zamienia go w zaledwie kilka wierszy brzydkiego kodu. Mamy nadzieję, że wysyłając kod do wersji produkcyjnej, używasz kodu zminimalizowanego zamiast pełnej, nieuprawnionej wersji. Gdy twoja aplikacja jest w produkcji i ma błąd, sourcemap pomoże ci wziąć brzydki plik i pozwoli ci zobaczyć oryginalną wersję kodu. Jeśli nie posiadasz sourcemap, każdy błąd wydaje się w najlepszym razie tajemniczy.To samo dotyczy plików CSS. Po pobraniu pliku SASS lub LESS i skompilowaniu go w CSS nie wygląda to tak, jakby był w oryginalnej formie. Jeśli włączysz sourcemaps, zobaczysz oryginalny stan pliku zamiast stanu zmodyfikowanego.
Aby odpowiedzieć na pytania w kolejności:
Mam nadzieję, że to ma sens.
źródło
.js.map
plik nie utrzymuje relacji (często nazywanej referencją ) między ręcznie spreparowanym plikiem a plikiem zminimalizowanym?Chciałem tylko skupić się na ostatniej części pytania; Jak tworzone są pliki map źródłowych? wymieniając narzędzia do budowania, które znam, które mogą tworzyć mapy źródłowe.
grunt-contrib-uglify
gulp-uglify
--create_source_map
źródło
Nie znalazłem odpowiedzi na to w komentarzach, oto jak można użyć:
Narzędzia do minifikacji (dobre) dodają komentarz do pliku .min.js :
// # sourceMappingURL = nazwa_pliku.min.js.map
który połączy Twój plik .map .
Gdy pliki min.js i js.map są gotowe ...
źródło
Plik odwzorowania odwzorowuje plik niezminimalizowany na plik zminimalizowany. Jeśli wprowadzisz zmiany w niezminimalizowanym pliku, zmiany zostaną automatycznie odzwierciedlone w zminimalizowanej wersji pliku.
źródło
Aby dodać, jak korzystać z plików map. Używam chrome dla Ubuntu i jeśli przejdę do źródeł i kliknę plik, jeśli jest plik mapy, pojawi się komunikat z informacją, że mogę zobaczyć oryginalny plik i jak to zrobić.
W przypadku plików Angular, z którymi dzisiaj pracowałem, klikam
Następnie mogę przejrzeć listę, aby wyświetlić plik, który chciałbym sprawdzić i sprawdzić, gdzie może być problem.
źródło