Recientemente, he visto archivos con .js.map
extensión enviados con algunas bibliotecas de JavaScript (como Angular ), y eso solo generó algunas preguntas en mi cabeza:
- ¿Para qué sirve? ¿Por qué los chicos de Angular se preocupan por entregar un
.js.map
archivo? - ¿Cómo puedo (como desarrollador de JavaScript) usar el
angular.min.js.map
archivo? - ¿Debería importarme crear
.js.map
archivos para mis aplicaciones JavaScript? - ¿Cómo se crea? Eché un vistazo
angular.min.js.map
y estaba lleno de cadenas de formato extraño, así que supongo que no se creó manualmente.
javascript
angularjs
source-maps
Muhammad Reda
fuente
fuente
Respuestas:
Los
.map
archivos son parajs
ycss
(y ahorats
también) archivos que han sido minificados. Se llaman SourceMaps. Cuando minimiza un archivo, como el archivo angular.js, toma miles de líneas de código bonito y lo convierte en solo unas pocas líneas de código feo. Con suerte, cuando envía su código a producción, está usando el código minificado en lugar de la versión completa y no minificada. Cuando su aplicación está en producción y tiene un error, el mapa fuente lo ayudará a tomar su archivo feo y le permitirá ver la versión original del código. Si no tuviera el mapa fuente, cualquier error parecería críptico en el mejor de los casos.Lo mismo para los archivos CSS. Una vez que toma un archivo SASS o LESS y lo compila en CSS, no se parece en nada a su forma original. Si habilita los mapas de origen, puede ver el estado original del archivo, en lugar del estado modificado.
Entonces, para responder sus preguntas en orden:
Espero que esto tenga sentido.
fuente
.js.map
archivo no mantiene una relación (a menudo llamada referencia ) entre un archivo hecho a mano y un archivo minificado?Solo quería centrarme en la última parte de la pregunta; ¿Cómo se crean los archivos de mapa fuente? enumerando las herramientas de compilación que sé que pueden crear mapas de origen.
grunt-contrib-uglify
gulp-uglify
--create_source_map
fuente
No encontré respuesta para esto en los comentarios, aquí es cómo se puede usar:
Las herramientas de minifiación (buenas) agregan un comentario a su archivo .min.js :
// # sourceMappingURL = yourFileName.min.js.map
que conectará tu archivo .map .
Cuando los archivos min.js y js.map están listos ...
fuente
El archivo de mapa asigna el archivo no minificado al archivo minificado. Si realiza cambios en el archivo no minificado, los cambios se reflejarán automáticamente en la versión minificada del archivo.
fuente
Solo para agregar a cómo usar los archivos de mapa. Uso chrome para ubuntu y si voy a las fuentes y hago clic en un archivo, si hay un archivo de mapa, aparece un mensaje que me dice que puedo ver el archivo original y cómo hacerlo.
Para los archivos angulares con los que trabajé hoy, hago clic en
Luego puedo examinar la lista para ver el archivo que me gustaría inspeccionar y verificar dónde podría estar el problema.
fuente