usar - Embellecedor de código JavaScript de línea de comando que funciona en Windows y Linux
salto de linea consola chrome (17)
Aquí hay un embellecedor de JavaScript escrito en .NET que admite la línea de comandos, así como el modo interactivo: http://www.rahulsingla.com/blog/2010/12/jsbeautifier-net-javascript-beautifier-in-net
No hay dependencia externa excepto .Net 2.0.
Estoy buscando un embellecedor de código que admita JavaScript y funcione tanto en Windows como en Linux y se pueda usar en scripts por lotes. ¿Alguna recomendación?
Creo que cuando preguntaste por la herramienta de línea de comandos, solo querías embellecer todos tus archivos js en lote.
En este caso, Intellij IDEA (probado con 11.5) puede hacer esto.
Solo tiene que seleccionar cualquiera de sus archivos de proyecto y seleccionar "Código" -> "Reformatear código ..." en el menú principal de IDE. Luego, en el cuadro de diálogo, seleccione "todos los archivos en el directorio ..." y presione "enter". Solo asegúrate de haber dedicado suficiente memoria para la JVM.
El problema con la asignación de embellecedores es la elección de la salida y el filtrado y la falta de graves embellecedores de línea de comandos. Recientemente comencé a modificar el compresor YUI para embellecer el código. Si quieres hacer tu propio embellecedor, recomiendo encarecidamente este enfoque. YUI es de código abierto y viene con un archivo de compilación por lo que es muy fácil de modificar y compilar.
En la consola, puede usar Estilo artístico (también conocido como AStyle) con --mode=java
.
Funciona muy bien y es gratuito, de código abierto y multiplataforma (Linux, Mac OS X, Windows).
Este es un embellecimiento independiente y autónomo (y mucho más):
Hasta ahora he encontrado un par de en línea:
Todavía estoy buscando algo que pueda ejecutar desde la línea de comando.
He escrito un artículo que explica cómo crear un embellecedor de JavaScript de línea de comandos implementado en JavaScript en menos de 5 minutos. YMMV.
- Descargue el último Rhino estable y descomprímalo en algún lugar, p. Ej. ~ / Dev / javascript / rhino
- Descargue beautify.js al que se hace referencia desde el ya mencionado jsbeautifier.org y cópielo en algún lado, p. Ej. ~ / Dev / javascript / bin / cli-beautifier.js
Agregue esto al final de beautify.js (usando algunas propiedades de nivel superior adicionales a JavaScript):
// Run the beautifier on the file passed as the first argument. print( j23s_beautify( readFile( arguments[0] )));
Copie y pegue el siguiente código en un archivo ejecutable, por ejemplo ~ / dev / javascript / bin / jsbeautifier.sh:
#!/bin/sh java -cp ~/dev/javascript/rhino/js.jar org.mozilla.javascript.tools.shell.Main ~/dev/web/javascript/bin/cli-beautifier.js $*
(opcional) Agregue la carpeta con jsbeautifier.js a PATH o muévase a alguna carpeta que ya exista.
Mi herramienta Pretty Diff está escrita completamente en JavaScript, por lo que funciona igual de bien en todos los sistemas operativos. Admite el embellecimiento y la minificación de JavaScript, CSS, cualquier lenguaje de marcado que utilice delimitadores de estilo XML, incluido HTML.
No puedo agregar un comentario a la respuesta aceptada, así que es por eso que ves una publicación que no debería haber existido desde el principio.
Básicamente, también necesitaba un embellecedor de JavaScript en un código Java y para mi sorpresa, ninguno está disponible por lo que pude encontrar. Así que codifiqué uno por completo basado en la respuesta aceptada (envuelve el script jsbeautifier.org beautifier .js pero se puede llamar desde java o desde la línea de comandos).
El código se encuentra en https://github.com/belgampaul/JsBeautifier
Usé rhino y beautifier.js
USO de la consola: sangría de script java -jar jsbeautifier.jar
ejemplo: java -jar jsbeautifier.jar "function ff () {return;}" 2
USO del código java: public static String jsBeautify (String jsCode, int indentSize)
Le invitamos a extender el código. En mi caso, solo necesitaba la sangría para poder verificar el javascript generado mientras desarrollaba.
Con la esperanza de que te ahorrará algo de tiempo en tu proyecto.
Primero, elija su Pretty Print / Beautifier basado en Javascript favorito. Prefiero el que está en , porque es lo que encontré primero. Descarga su archivo https://github.com/beautify-web/js-beautify/blob/master/js/lib/beautify.js
Segundo, descargue e instale el motor de Javascript basado en Java del grupo Mozilla, Rhino . "Instalar" es un poco engañoso; Descargue el archivo zip, extraiga todo, coloque js.jar en su classpath Java (o Library / Java / Extensions en OS X). A continuación, puede ejecutar scripts con una invocación similar a esta
java -cp js.jar org.mozilla.javascript.tools.shell.Main name-of-script.js
Utilice el Pretty Print / Beautifier del paso 1 para escribir un pequeño script de shell que se leerá en su archivo javascript y ejecutarlo a través de Pretty Print / Beautifier desde el primer paso. Por ejemplo
//original code
(function() { ... js_beautify code ... }());
//new code
print(global.js_beautify(readFile(arguments[0])));
Rhino le da a javascript algunas funciones útiles adicionales que no necesariamente tienen sentido en el contexto de un navegador, pero sí en un contexto de consola. La función de impresión hace lo que cabría esperar e imprime una cadena. La función readFile acepta una cadena de ruta de archivo como argumento y devuelve el contenido de ese archivo.
Invocarías algo como lo anterior
java -cp js.jar org.mozilla.javascript.tools.shell.Main beautify.js file-to-pp.js
Puede mezclar y combinar Java y Javascript en sus secuencias de comandos de ejecución de Rhino, por lo que si conoce un poco de Java, no debería ser demasiado difícil ejecutarlo también con flujos de texto.
Pruebe el plugin de la libreta ++ JSMinNpp (nombre cambiado a JSTool desde 1.15)
Si está usando nodejs, intente uglify-js
En Ubuntu 12.04, suponiendo que ya tiene nodejs instalado, puede instalar uglify con:
sudo npm install -g uglify-js
Y luego obtén las opciones:
uglifyjs -h
Entonces, si tengo un archivo fuente foo.js
que se ve así:
// foo.js -- minified
function foo(bar,baz){console.log("something something");return true;}
Puedo embellecerlo así:
uglifyjs foo.js --beautify --output cutefoo.js
uglify
usa espacios para la sangría de manera predeterminada, así que si quiero convertir la sangría de 4 espacios en pestañas, puedo ejecutarla a través de unexpand
que viene Ubuntu 12.04:
unexpand --tabs=4 cutefoo.js > cuterfoo.js
O puede hacerlo todo de una vez:
uglifyjs foo.js --beautify | unexpand --tabs=4 > cutestfoo.js
Puede encontrar más información sobre cómo desaparecer here
así que después de todo esto terminé con un archivo que se ve así:
function foo(bar, baz) {
console.log("something something");
return true;
}
actualización 2016-06-07
Parece que el mantenedor de uglify-js ahora está trabajando en la versión 2, aunque la instalación es la misma.
Si usa notepad ++ aquí hay un complemento para notepad ++ http://www.sunjw.us/jsminnpp/
Use la forma moderna de JavaScript:
Use Grunt en combinación con el plugin jsbeautifier para Grunt
Puede instalar todo fácilmente en su entorno de desarrollo usando npm .
Todo lo que necesita es configurar un Gruntfile.js con las tareas apropiadas, que también pueden involucrar la concatenación de archivos, pelusa, uglify, minify, etc., y ejecutar el comando grunt.
Yo uso este ( http://jsbeautifier.atomproject.net/ ) embellecedor. Está en línea y gratis.
ACTUALIZACIÓN abril de 2014 :
El embellecimiento ha sido reescrito desde que respondí esto en 2010. Ahora hay un módulo de python, un paquete npm para nodejs, y el archivo jar ha desaparecido. Por favor, lea la página del proyecto en github.com .
Estilo de Python:
$ pip install jsbeautifier
Estilo de NPM:
$ npm -g install js-beautify
para usarlo:
$ js-beautify file.js
Respuesta original
Agregando a la respuesta de @Alan Storm
el embellecedor de línea de comandos basado en ha vuelto un poco más fácil de usar, porque ahora está (alternativamente) basado en el motor de JavaScript V8 (código c ++) en lugar de rhino (motor JS basado en Java, empacado como "js.jar"). Entonces puedes usar V8 en lugar de rinoceronte.
Cómo utilizar:
descargue el archivo zip de jsbeautifier.org desde http://github.com/einars/js-beautify/zipball/master
(esta es una URL de descarga vinculada a un archivo zip como http://download.github.com/einars-js-beautify-10384df.zip )
viejo (ya no funciona, el archivo jar se ha ido)
java -jar js.jar name-of-script.js
nuevo (alternativa)
instalar / compilar v8 lib FROM svn, ver v8 / README.txt en el archivo zip mencionado anteriormente
./jsbeautify somefile.js
-tiene opciones de línea de comando ligeramente diferentes que la versión de rinoceronte,
-y funciona muy bien en Eclipse cuando se configura como una "herramienta externa"