Desminificar JS: Restaurar la Legibilidad de JavaScript Minificado
JavaScript minificado - el tipo entregado por todo bundler moderno con nombres como bundle.min.js o main.[hash].js - es una sola linea densa con nombres de variable de una letra, sin espacios en blanco y sin saltos de linea. Esta guia recorre el viaje de tres minutos desde esa forma compacta de vuelta a codigo indentado y con saltos de linea que su ojo puede leer. La herramienta companera en https://freetoolonline.com/developer-tools/js-unminifier.html ejecuta la desminificacion enteramente dentro del navegador, asi que el codigo fuente nunca sale de la pestana.
Ultima revision: 2026-05-20
| Propiedad | Valor |
|---|---|
| Formato | Herramienta online, sin instalar |
| Velocidad | En el navegador; salida legible en segundos |
| Privacidad | El codigo fuente se queda en el dispositivo; nada se sube |
| Renombrar variable | No se realiza - los nombres de una letra siguen siendo de una letra |
| Herramienta implementadora | https://freetoolonline.com/developer-tools/js-unminifier.html |
Lo que desminificar realmente hace (y lo que no puede hacer)
Desminificar revierte la mitad barata de la minificacion: re-inserta espacio en blanco, saltos de linea e indentacion consistente, asi que un bundle de una linea se vuelve codigo formateado legible. NO revierte la mitad cara - el renombrador. Variables llamadas a, b, t en el bundle minificado siguen llamandose a, b, t despues de desminificar, porque los nombres originales se descartaron en tiempo de build y no se preservo source map. Si un source map (archivo .map o comentario inline //# sourceMappingURL=) esta disponible, ese archivo apunta a los simbolos originales y es el artefacto correcto a cargar - no una pasada de desminificar. El enfoque para el lector: desminificar es la herramienta correcta para "tengo un bundle de terceros y quiero leer lo que hace"; un source map es la herramienta correcta para "tengo mi propio build y quiero depurar simbolos originales".
Recorrido de tres minutos
- Copie el bundle minificado. Abra el archivo
.min.jsen su editor o en la pestana de red del navegador (Response body), seleccione todo, copie. - Pegue en el editor. Abra https://freetoolonline.com/developer-tools/js-unminifier.html y pegue en el panel de entrada. Bundles largos - cientos de KB o mas - funcionan, pero espere que la pasada de formato tome un segundo o dos mientras el parser recorre la AST.
- Haga clic en Unminify. El panel derecho muestra la salida indentada. Copie el resultado de vuelta a su editor o guardelo como un archivo
.jslocal para lectura tipo grep.
Donde la salida desminificada ayuda y donde no
Leer codigo de terceros desminificado es util en tres situaciones concretas. Primero, triaje de vulnerabilidad - cuando un CVE nombra una funcion dentro de un bundle de proveedor, desminificar le permite localizar las llamadas y leer el flujo circundante sin montar el repo original. Segundo, confirmacion de comportamiento - cuando el comportamiento de una libreria varia entre versiones, comparar las versiones desminificadas saca la diferencia mucho mas rapido que leer la forma densa de una linea. Tercero, verificacion de salida de build - cuando su propio pipeline emite un bundle que misteriosamente carga dos veces un polyfill, la forma desminificada muestra los bloques IIFE duplicados de un vistazo. Desminificar no ayudara cuando el objetivo sean los nombres semanticos originales; para eso, entregue el source map junto al bundle y cargelo en su depurador.
Lo que se preserva, lo que se pierde
Espacio en blanco, saltos de linea e indentacion se restauran deterministicamente desde la AST. Los comentarios no se restauran - el minificador los quita en tiempo de build, y no queda informacion en el bundle para reconstruirlos. La estructura de modulo (llamadas CommonJS require, declaraciones ESM import) se preserva como aparece en la forma empaquetada, que a menudo es un wrapper generado en lugar del limite original del modulo. Optimizaciones a nivel de fuente como constant folding (5*60*60*1000 colapsado a 18000000) no se revierten - desminificar no entiende semantica, solo sintaxis. Si un numero se lee como criptico en la salida desminificada, busquelo en el repositorio original o adivine la unidad (milisegundos, bytes, indices).
Yendo en sentido contrario?
Si llego aqui buscando encoger JS para produccion en vez de expandirlo, la herramienta companera en https://freetoolonline.com/developer-tools/js-minifier.html realiza la direccion hacia adelante (eliminar espacios, acortar identificadores) y la guia de comparacion CSS Minifier vs Uglifier vs Tree-Shaking cubre como las tres transformaciones se apilan en un pipeline de build tipico. Para equivalentes del lado CSS, vea CSS Unminifier vs Prettier: Cuando Usar Cada Uno - la decision del lado JS es similar: desminificar al leer salida de terceros, source map al depurar la propia.
Preguntas frecuentes
Desminificar recupera los nombres originales de las variables?
No. Los minificadores reemplazan identificadores con nombres sinteticos cortos en tiempo de build y descartan los originales; la salida desminificada mantiene los nombres sinteticos. Cargue el source map correspondiente en el depurador de su navegador para ver los simbolos originales.
El codigo fuente se sube a algun lugar?
No. La pasada de desminificar se ejecuta enteramente en su navegador; el texto minificado nunca se envia a un servidor. Cierre la pestana y la entrada se va.
Desminificar rompera el JavaScript?
No. La transformacion es puramente cosmetica - espacio en blanco, saltos de linea, indentacion. La AST no cambia, asi que el codigo desminificado corre identicamente al minificado original. Pase por un verificador de sintaxis si quiere una confirmacion con cinturon y tirantes.
Cual es el limite de tamano de archivo?
Bundles de hasta varios megabytes funcionan en navegadores modernos; el tiempo de la pasada de formato crece aproximadamente lineal con la longitud de entrada. Bundles muy grandes (10 MB+) pueden trabar la pestana; en ese caso divida el bundle por limite de closure y desminifique cada chunk por separado.
Cual es la diferencia entre desminificar y prettier?
Desminificar restaura formato legible a codigo que fue deliberadamente compactado. Prettier (o un formateador similar) impone una guia de estilo elegida sobre codigo ya legible. Para un bundle de terceros minificado, desminifique primero; si despues quiere un ancho de indent o estilo de comillas especifico, ejecute prettier sobre la salida.