Desminificar JS: Restaurar la Legibilidad de JavaScript Minificado
El JavaScript minificado colapsa un bundle en una linea densa con nombres de variables de una letra. Pegalo en el unminificador JS online y la herramienta reinserta espacios en blanco, saltos de linea e indentacion en segundos - sin subida, sin instalacion, nada enviado a un servidor.
FreetoolOnline editorial team| 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)
Lo que desminificar realmente hace es reinsertar espacios, saltos e indentacion en JavaScript minificado para leer un bundle de una linea - no recupera nombres de identificadores acortados al minificar.
Recorrido de tres minutos
Recorrido de tres minutos: pega JS minificado en JS Unminifier, ejecuta el embellecido y copia la salida indentada - en el navegador, sin subir tu codigo a un servidor de conversion.
- 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
Lo que se preserva, lo que se pierde: espacios e indentacion vuelven del arbol de analisis; comentarios y nombres cortos como a/b/fn1 no regresan.
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.
Cuando tu objetivo es producir JS mas pequeno en lugar de leerlo, la guia how to minify css js for cloud run cold start cubre los pasos de pipeline para eliminar CSS y JS antes del despliegue en contenedores.
Como se ven los nombres de identificadores despues de desminificar
Desminificar restaura espacios en blanco y estructura, no recupera nombres de identificadores originales. Los nombres de variables locales acortados (letras unicas como a, b, fn1) se mantienen acortados. Los nombres exportados suelen conservarse porque los minificadores omiten acortar simbolos exportados para que la API del modulo permanezca intacta. Cuando tu objetivo es reducir JS, usa el JS minifier - elimina espacios en blanco, comentarios y acorta variables locales conservando los nombres exportados.