
Depurar JS minificado: source maps y DevTools
Código de producción ilegible: pretty-print de Chrome, source maps, y desminificar en local solo si faltan las maps. Los nombres mangled se quedan.
El problema del código minificado en producción
Un TypeError de producción en `main.js:1:245` no es el mismo trabajo que «pegar esto en un desminificador en línea». La minificación quita espacios y comentarios; el mangling renombra las funciones a `a`, `b`, `c`. El pretty-print restaura la forma. Solo una source map restaura los nombres originales. Si faltan las maps y necesitas una copia local, usa el desminificador JavaScript — sabiendo que los identificadores siguen mangled.
Cuándo el JavaScript de producción es ilegible
Son problemas de depuración. Desminificar es una táctica — no el reflejo por defecto.
Formatear no es decompilar. Ten estas limitaciones por definitivas:
Limitaciones:
Qué funciona:
Cuándo desminificar vs pretty-print
No empieces pegando en una herramienta. Sigue este orden — la página desminificar JavaScript es el paso 3, cuando faltan las maps.
1Buscar una source map
En DevTools → Sources, comprueba los archivos de origen junto al bundle, un vecino `.map`, o un comentario `//# sourceMappingURL=`. Si se carga una map, depura ahí y párate.
2Pretty-print en el navegador o el editor
Chrome Sources: el control `{}` Pretty Print formatea el archivo in situ. VS Code: Format Document (formateador JS integrado o Prettier) sobre un `.min.js` guardado. Misma limitación: los nombres siguen mangled.
3Desminificar en local solo si necesitas un archivo
Sin map, y quieres source indentado en disco: pega en desminificar JavaScript. El procesamiento se queda en el navegador. Tamaño y carácter de indentación son ajustes de formato — no un desofuscador.
4Navegar con los literales, no con los nombres
Busca cadenas, URLs y mensajes de error únicos. Sigue los patrones `if` / `return` / `.then(`. No esperes que `a` vuelva a ser un identificador real.
Ejemplo:
Antes (minificado):
Después (desminificado):
El pretty-print (o una source map) debe preceder al copiar-pegar de un bundle de un megabyte en un editor.
Código minificado:
Código desminificado (vista previa):
Source maps: la mejor vía de debug en producción
Un archivo `.map` enlaza las posiciones minificadas con las fuentes originales. DevTools puede entonces mostrar rutas reales, identificadores originales y breakpoints en el código que escribiste — lo que ningún desminificador puede reconstruir.
Webpack 5: configura `devtool` (ya no pases `sourceMap: true` a TerserPlugin — opción retirada). Vite: `build.sourcemap: true` o `'hidden'`. Terser en CLI todavía puede adjuntar un objeto map como abajo.
Terser
Webpack
Depurar con las DevTools del navegador
Chrome (y las demás DevTools Chromium) pueden formatear el archivo que ya estás inspeccionando. Es más rápido que exportar el bundle si solo quieres leer la línea que falla. Format Document en VS Code sobre un `.min.js` guardado es el equivalente en el editor — sigue sin ser una source map.
Una vez que DevTools (o un editor) ha formateado el archivo, los números de línea se refieren a la vista pretty-print, salvo si hay una map activa:
Consejos:
Cuándo todavía necesitas una copia local formateada
Estas opciones reindentan el JavaScript. Ninguna restaura los nombres mangled. El trabajo «expandir JS minificado» está en desminificar JavaScript. La página hermana embellecer JavaScript es la URL formateador; minificar JavaScript es la operación inversa.
FastMinify — Desminificar JS
Desminificador local en el navegador: pega un snippet minificado, recupera una salida indentada. Solo tamaño de indentación y espacios vs tabulaciones. No se envía nada al servidor.
Ventajas:
Inconvenientes:
VS Code + Prettier
Guarda el archivo y lanza Format Document. Es el camino habitual «desminificar en VS Code»: misma ganancia de legibilidad que el pretty-print, sigue sin identificadores originales.
Ventajas:
Inconvenientes:
JS Beautifier
Formateador open-source (js-beautify) como biblioteca, CLI y varias UI web. Misma familia de herramienta: espacios y estructura, no los símbolos originales.
Ventajas:
Inconvenientes:
Lo que hay que hacer a continuación
Depura el JavaScript minificado en este orden: source maps si existen, pretty-print en DevTools o VS Code si solo quieres leer la línea que falla, y un desminificador local solo cuando necesitas una copia formateada y faltan las maps. La herramienta no deshace el mangling. Corrige el build para que el próximo incidente tenga maps.
Artículos relacionados

YAML roto, `on` o `jobs` ausentes, steps vacíos: valida la estructura de tus workflows antes del push — y deja actionlint para la CI.

Errores de sintaxis SDL, review de esquema y formateo antes del merge — complemento al beautify GraphQL existente.

Reduce la factura OpenAI/Anthropic/Gemini: estima input/output, activa batch y caching en tus cálculos — tarifas verificadas, 100 % local.