Estoy escribiendo un script por lotes para embellecer el código JavaScript. Necesita funcionar tanto en Windows como en Linux .
¿Cómo puedo embellecer el código JavaScript usando las herramientas de línea de comandos?
Estoy escribiendo un script por lotes para embellecer el código JavaScript. Necesita funcionar tanto en Windows como en Linux .
¿Cómo puedo embellecer el código JavaScript usando las herramientas de línea de comandos?
Respuestas:
Primero, elija su Pretty Print / Beautifier basado en Javascript favorito. Yo prefiero el dehttp://jsbeautifier.org/ , porque es lo que encontré primero. Descarga su archivo https://github.com/beautify-web/js-beautify/blob/master/js/lib/beautify.js
En segundo lugar, descargue e instale Rhino , el motor de JavaScript basado en Java del grupo Mozilla . "Instalar" es un poco engañoso; Descargue el archivo zip, extraiga todo, coloque js.jar en su classpath de Java (o Library / Java / Extensions en OS X). Luego puede ejecutar scripts con una invocación similar a esta
Utilice Pretty Print / Beautifier del paso 1 para escribir un pequeño script de shell que se leerá en su archivo javascript y lo ejecutará a través de Pretty Print / Beautifier desde el paso uno. Por ejemplo
Rhino proporciona a JavaScript algunas funciones útiles adicionales que no necesariamente tienen sentido en el contexto del navegador, pero sí en el contexto de una consola. La función print hace lo que esperarías 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 lo anterior algo como
Puede mezclar y combinar Java y Javascript en sus scripts de ejecución de Rhino, por lo que si conoce un poco de Java, no debería ser demasiado difícil hacerlo funcionar también con flujos de texto.
fuente
ACTUALIZACIÓN Abril de 2014 :
El embellecedor se ha reescrito desde que respondí esto en 2010. Ahora hay un módulo de Python allí, un paquete npm para nodejs y el archivo jar se ha ido. Lea la página del proyecto en github.com .
Estilo Python:
Estilo NPM:
para usarlo:
Respuesta original
Agregando a la respuesta de @Alan Storm
el embellecedor de línea de comando basado en http://jsbeautifier.org/ se ha vuelto un poco más fácil de usar, porque ahora (alternativamente) está basado en el motor javascript V8 (código c ++) en lugar de rhino (motor JS basado en java, empaquetado como "js.jar"). Entonces puedes usar V8 en lugar de rhino.
Cómo utilizar:
descargue el archivo zip jsbeautifier.org de 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 )
antiguo (ya no funciona, el archivo jar se ha ido)
nuevo (alternativo)
instalar / compilar v8 lib DESDE svn, ver v8 / README.txt en el archivo zip mencionado anteriormente
-tiene opciones de línea de comando ligeramente diferentes a las de la versión de rhino,
-y funciona muy bien en Eclipse cuando se configura como una "herramienta externa"
fuente
Si está usando nodejs, intente uglify-js
En Linux o Mac, asumiendo que ya tiene nodejs instalado, puede instalar uglify con:
Y luego obtén las opciones:
Entonces, si tengo un archivo fuente
foo.js
que se parece a esto:Puedo embellecerlo así:
uglify
usa espacios para la sangría de forma predeterminada, por lo que si quiero convertir la sangría de 4 espacios en pestañas, puedo ejecutarla a través de launexpand
cual viene Ubuntu 12.04:O puede hacerlo todo de una vez:
Puede encontrar más información sobre inexpand aquí
así que después de todo esto termino con un archivo que se ve así:
actualización 2016-06-07
Parece que el responsable de mantenimiento de uglify-js ahora está trabajando en la versión 2, aunque la instalación es la misma.
fuente
uglifyjs -b
Hace mucho más que corregir la sangría, reorganiza y reescribe el código, quizás por eficiencia. Eso no es lo que quería. Estaba usando una versión anterior, en Ubuntu 14.04.uglifyjs -b
reorganiza y reescribe el código?En Ubuntu LTS
fuente
js-beautify -o file.js file.js
En la consola, puede usar Artistic Style (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).
fuente
Utilice la forma moderna de JavaScript:
Use Grunt en combinación con el complemento jsbeautifier para Grunt
Puede instalar todo fácilmente en su entorno de desarrollo usando npm .
Todo lo que necesitará es configurar un Gruntfile.js con las tareas apropiadas, que también pueden involucrar la concatenación de archivos, lint, uglify, minify, etc., y ejecutar el comando grunt.
fuente
No puedo agregar un comentario a la respuesta aceptada, por eso ves una publicación que no debería haber existido en primer lugar.
Básicamente, también necesitaba un embellecedor de javascript en un código de Java y, para mi sorpresa, ninguno está disponible hasta donde pude encontrar. Así que codifiqué uno yo mismo en función de la respuesta aceptada (envuelve el script jsbeautifier.org beautifier .js pero se puede llamar desde java o la línea de comandos).
El código se encuentra en https://github.com/belgampaul/JsBeautifier
Usé rhino y beautifier.js
USO desde la consola: sangría de script java -jar jsbeautifier.jar
ejemplo: java -jar jsbeautifier.jar "function ff () {return;}" 2
USO del código java: público estático String jsBeautify (String jsCode, int indentSize)
Le invitamos a ampliar el código. En mi caso, solo necesitaba la sangría para poder verificar el javascript generado mientras desarrollaba.
Con la esperanza de que le ahorre algo de tiempo en su proyecto.
fuente
Escribí 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.
fuente
Creo que cuando preguntaste sobre la herramienta de línea de comandos, solo querías embellecer todos tus archivos js por lotes.
En este caso, Intellij IDEA (probado con 11.5) puede hacer esto.
Solo necesita seleccionar cualquiera de los archivos de su proyecto y seleccionar "Código" -> "Reformatear código ..." en el menú principal del IDE. Luego, en el cuadro de diálogo, seleccione "todos los archivos del directorio ..." y presione "enter". Solo asegúrese de dedicar suficiente memoria para la JVM.
fuente
Tiene algunas opciones de un forro. Úselo con npm o de forma independiente con npx .
Semistandar
Estándar
Más bonita
fuente