¿Cómo puedo utilizar mapas fuente de JavaScript (archivos .map)?
Recientemente he visto archivos con la .js.map
extensión incluida en algunas bibliotecas de JavaScript (como Angular ), y eso generó algunas preguntas en mi cabeza:
- ¿Para qué sirve? ¿Por qué a los chicos de Angular les importa entregar un
.js.map
archivo? - ¿Cómo puedo (como desarrollador de JavaScript) utilizar el
angular.min.js.map
archivo? - ¿ Debería preocuparme por crear
.js.map
archivos para mis aplicaciones JavaScript? - ¿Cómo se crea? Le eché un vistazo
angular.min.js.map
y estaba lleno de cadenas con formatos extraños, así que supongo que no se creó manualmente.
Los .map
archivos son para archivos JavaScript y CSS (y ahora también TypeScript) que han sido minimizados. Se llaman mapas fuente . Cuando minimizas un archivo, como el archivo angular.js , se necesitan miles de líneas de código bonito y las convierte en solo unas pocas líneas de código feo. Con suerte, cuando envíe su código a producción, esté utilizando el código minimizado en lugar de la versión completa y no minimizada. Cuando su aplicación está en producción y tiene un error, el mapa fuente le 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, en el mejor de los casos, críptico.
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, podrá ver el estado original del archivo, en lugar del estado modificado.
Entonces, para responder sus preguntas en orden:
- ¿Para qué sirve? Para eliminar la referencia al código feo
- ¿Cómo puede usarlo un desarrollador? Lo usas para depurar una aplicación de producción. En modo de desarrollo puedes utilizar la versión completa de Angular. En producción, usarías la versión minimizada.
- ¿Debería preocuparme por crear un archivo js.map? Si le interesa poder depurar el código de producción más fácilmente, entonces sí, debería hacerlo.
- ¿Cómo se crea? Se crea en el momento de la construcción. Existen herramientas de compilación que pueden crear su archivo .map por usted como lo hacen con otros archivos. Los mapas de origen fallan si el archivo de salida no se encuentra en el directorio raíz del proyecto #71
Espero que esto tenga sentido.
¿Cómo puede usarlo un desarrollador?
No vincule su archivo js.map en su archivo index.html (no es necesario)
Las herramientas de minificación (las buenas) agregan un comentario a su archivo .min.js :
//# sourceMappingURL=yourFileName.min.js.map
que conectará su archivo .map .
Cuando los archivos min.js y js.map estén listos...
Chrome: abra dev-tools , navegue hasta la pestaña Fuentes . Verá la carpeta de fuentes , donde se guardan los archivos de aplicaciones no minificadas.