Herramienta para Unminificar / Descomprimir JavaScript [cerrado]


¿Existen scripts de línea de comandos y/o herramientas en línea que puedan revertir los efectos de la minificación de manera similar a cómo Tidy puede limpiar HTML horrible?

(Estoy buscando específicamente unminificar un archivo JavaScript minificado, por lo que el cambio de nombre de la variable podría seguir siendo un problema.)

Author: Andy Ford, 2009-05-05

17 answers

Puedes usar esto: http://jsbeautifier.org / Pero depende del método minify que esté utilizando, este solo formatea el código, no cambia los nombres de las variables, ni descomprime la codificación base62.

Editar: de hecho, puede desempaquetar scripts "empaquetados" (empaquetados con Dean Edward's packer: http://dean.edwards.name/packer/)

 495
Author: Fabien Ménager,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-05-04 21:24:00

Chrome Developer tools tiene esta característica incorporada. Abra las herramientas para desarrolladores (presionar F12 es una forma), en la pestaña Fuentes, la barra inferior izquierda tiene un conjunto de iconos. El icono "{} " es "Impresión bonita" y hace esta conversión bajo demanda.

ACTUALIZACIÓN: IE9 "F12 developer tools" también tiene una función "Formatear JavaScript" en la pestaña Script debajo del icono de Herramientas allí. (ver Tip #4 en F12 El secreto de depuración web mejor guardado )

introduzca la descripción de la imagen aquí

 145
Author: Jon Adams,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-02-23 22:58:16

Lo tengo! JSBeautifier hace exactamente esto, e incluso tiene opciones para el formateo automático.

 56
Author: Robinicks,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-06-22 16:26:04

¿No puedes usar un formateador javascript ( http://javascript.about.com/library/blformat.htm )?

 16
Author: Janco,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-05-04 21:25:38

En Firefox, SpiderMonkey y Rhino puede envolver cualquier código en una función anónima y llamar a su toSource método, que le dará una fuente bien formateada de la función.

toSource también elimina comentarios.

E. g.:

(function () { /* Say hello. */ var x = 'Hello!'; print(x); }).toSource()

Se convertirá en una cadena:

function () {
    var x = "Hello!";
    print(x);
}

P. S.: No es una "herramienta en línea", pero todas las preguntas sobre técnicas generales de embellecimiento se cierran como duplicados de esta.

 14
Author: katspaugh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-10-03 21:20:18

Si tiene un Mac y TextMate, una alternativa fácil para formatear Javascript es:

  1. Abra el archivo con Textmate.
  2. Haga clic en > Paquetes > JavaScript > Reformatear documento
  3. Abre una cerveza.
 9
Author: Stone,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-10-11 22:53:24

La mayoría de los IDE también ofrecen funciones de formateo automático. Por ejemplo en NetBeans, simplemente presione CTRL+K.

 6
Author: gou1,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-06-21 17:09:10

Similar a la respuesta de Stone , pero para los desarrolladores de Windows/. NET:

Si tiene Visual Studio y ReSharper, una alternativa fácil para formatear Javascript es:

  • Abra el archivo con Visual Studio;
  • Haga clic en ReSharper > Herramientas > Código de limpieza (Ctrl+E, C);
  • Seleccione "Predeterminado: Reformatear código" y haga clic en Aceptar;
  • Abre una cerveza.
 6
Author: Caio Proiete,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 11:55:07

Como alternativa (ya que no sabía jsbeautifier.org hasta ahora), he utilizado un bookmarklet que reenabled el botón de decodificación en Dean Edward's Packer.

Encontré las instrucciones y el bookmarklet aquí.

Aquí está el bookmarklet (en caso de que el sitio esté caído)

javascript:for%20(i=0;i<document.forms.length;++i)%20{for(j=0;j<document.forms[i].elements.length;++j){document.forms[i].elements[j].removeAttribute(%22readonly%22);document.forms[i].elements[j].removeAttribute(%22disabled%22);}}
 5
Author: Mottie,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-09-21 22:57:18

No estoy seguro de si necesita código fuente. Hay un formateador de JavaScript en línea gratuito en http://www.blackbeltcoder.com/Resources/JSFormatter.aspx .

 5
Author: Jonathan Wood,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-05-23 03:18:44

Pruebe este, con coloración de código:

Http://labs.swelen.com/tools/javascript/beauty.html

 5
Author: Swelen Team,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-10-22 12:59:54

Haga clic en estos enlaces para JS deminificación. Que se instalará en FF como extensión que le ayudará en la depuración de js en tiempo de ejecución.

Https://addons.mozilla.org/en-US/firefox/addon/javascript-deminifier/eula/141018?src=dp-btn-primary

 5
Author: sanjeev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-01-18 05:52:22

A pesar de su interfaz a kilómetros de distancia de ser bonita, JSPretty es una buena herramienta gratuita y en línea para hacer que los códigos fuente de javascript sean legibles por humanos. Puede imponer su tipo de sangría preferido y también puede detectar ofuscación.

 4
Author: Farshid,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-08-13 12:49:09

Si uno está en JS la posibilidad de usar Firefox es mayor. Y si su complemento de Firefox es para rescate. El siguiente es particularmente útil.

Https://addons.mozilla.org/en-US/firefox/addon/phoenix /

 3
Author: Anil Namde,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-04-29 08:34:02

Bastante Diff embellecerá (pretty print) JavaScript de una manera que se ajuste a los algoritmos de espacio en blanco JSLint y JSHint.

 3
Author: austincheney,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-07-29 10:04:59

No estaba muy contento con la salida de jsbeautifier.org por lo que estaba poniendo en, así que hice un poco más de búsqueda y encontré este sitio: http://www.centralinternet.com.br/javascript-beautifier

Funcionó extremadamente bien para mí.

 3
Author: Doyle Lewis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-11-18 20:21:39

Http://unminify.appspot.com / Grandes herramientas para unminify javascript y json

 2
Author: Bui Dinh Ngoc,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-12-28 03:56:23