significado minificar desminificar comprimir codigo javascript angularjs minify

minificar - ¿Cómo puedo tomar un seguimiento de pila de javascript minificado y ejecutarlo en un mapa de origen para obtener el error correcto?



minificar significado (3)

Agregue la directiva de comentarios para el JS que se ejecuta en la página.

// # sourceMappingURL = / ruta / a / su / sourcemap.map

En Firefox (no estoy seguro acerca de Chrome) para decirle al Depurador que use los mapas de origen si están disponibles, haga clic en el botón "Configuración del depurador" y seleccione "Mostrar fuentes originales" en la lista de configuraciones que aparecen:

En nuestro servidor de producción, he publicado un javascript y no estoy incluyendo un archivo de mapa, porque no quiero que el usuario pueda entender lo que está sucediendo en base al error.

Tengo un servicio de registro que escribí para enviarme las excepciones angulares (capturadas por $ exceptionHandler) a través de correo electrónico. Sin embargo, este seguimiento de pila es casi ilegible:

n is not defined at o (http://localhost:9000/build/app.min.js:1:3284) at new NameController (http://localhost:9000/build/app.min.js:1:3412) at e (http://localhost:9000/build/bower.min.js:44:193) at Object.g.instantiate (http://localhost:9000/build/bower.min.js:44:310) at b.$get (http://localhost:9000/build/bower.min.js:85:313) at d.compile (http://localhost:9000/build/bower.min.js:321:23333) at aa (http://localhost:9000/build/bower.min.js:78:90) at K (http://localhost:9000/build/bower.min.js:67:39) at g (http://localhost:9000/build/bower.min.js:59:410) at http://localhost:9000/build/bower.min.js:58:480 <ui-view class="ng-scope">

Lo que me pregunto es: ¿hay un programa donde pueda analizar este seguimiento de pila contra el código fuente real no reducido a través del archivo de mapa (o no a través del archivo de mapa si hay otra forma)?


Lo que quieres hacer es analizar los mapas de origen. Esto no tiene nada que ver con los navegadores web. Todo lo que necesita hacer es traducir la referencia minificada al recurso no minado.

Si tiene alguna experiencia con NodeJS, ya existe un paquete que lo hace por usted.

https://github.com/mozilla/source-map/

Para instalar la biblioteca

npm install -g source-map

Crea un archivo llamado "número.js"

fs = require(''fs''); var sourceMap = require(''source-map''); var smc = new sourceMap.sourceMapConsumer(fs.readFileSync("./app.min.js.map","utf8")); console.log(smc.originalPositionFor({line: 1, column: 3284}));

Ejecuta el archivo con nodo

node issue.js

Debe enviar la ubicación en el archivo original a la consola para la primera línea del seguimiento de la pila.

Nota: le digo que instale source-map globalmente para facilitar su uso, pero podría crear un proyecto de nodo que haga lo que necesita y lo instale localmente.


Supongo que si tuviera acceso al archivo de mapa de origen y pudiera obtener la misma estructura de archivo, podría calcularlo, pero no conozco ninguna herramienta fuera del navegador que lo ayude.

La ventaja adicional de tener los datos en un navegador en ejecución le permitirá verificar los locales que no obtendrá con un mapa de origen.

Es posible que desee considerar una herramienta como rollbar para hacer informes de errores. Esto informará a todos los locales en cada marco para ayudar a la depuración. Tiene soporte para sourcemaps fuera del navegador para abordar sus preocupaciones de seguridad.