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?Embellecedor de código JavaScript de la línea de comando que funciona en Windows y Linux
Respuesta
En primer lugar, elija su Pretty Print/Beautifier basado en Javascript favorito. Prefiero el que está en http://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 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 secuencias de comandos con una invocación similar a este
java -cp js.jar org.mozilla.javascript.tools.shell.Main name-of-script.js
Uso del Pretty Print/embellecedor del paso 1 para escribir un pequeño script que leerá en su archivo javascript y ejecutarlo a través de la Pretty Print/embellecedor de paso uno. Por ejemplo
//original code
(function() { ... js_beautify code ... }());
//new code
print(global.js_beautify(readFile(arguments[0])));
Rhino da Javascript a unas pocas funciones útiles adicionales que no necesariamente tienen sentido en un contexto navegador, pero lo hacen en un contexto 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.
Se podría invocar lo anterior algo así como
java -cp js.jar org.mozilla.javascript.tools.shell.Main beautify.js file-to-pp.js
Usted puede mezclar y combinar Java y Javascript en las secuencias de comandos de Rhino correr, así que si usted sabe un poco de Java no debería ser demasiado difícil de conseguir este corriendo con flujos de texto también.
Hasta aquí he encontrado un par de ellas en línea:
Todavía estás buscando algo que pueda corrió desde la línea de comandos.
Asumo que has encontrado lo que necesita por ahora (4 años después), pero siempre hay json.tool de Python: http://richardlog.com/post/12743073497/pretty-printing-json-and-xml-on-mac-osx –
Este es un stand-alone embellecedor libre (y mucho más):
Mi herramienta Bastante Dif está escrito totalmente 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.
El problema de adjudicar de embellecedores es la elección de la producción y el filtrado y la falta de Sever embellecedores de línea de comandos graves. 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.
actualización de abril de 2014:
El embellecedor se ha reescrito desde que respondí esto en 2010. En la actualidad existe un módulo de Python allí, un paquete de NPM nodejs, y el archivo JAR se ha ido. Por favor, lea el project page on github.com.
estilo Python: estilo
$ pip install jsbeautifier
NPM:
$ npm -g install js-beautify
usarlo:
$ js-beautify file.js
Respuesta original
Agregando a la respuesta de @Alan Storm
el embellecedor de línea de comandos basado en http://jsbeautifier.org/ se ha vuelto un poco más fácil de usar, porque ahora está (alternativamente) basado en el motor javascript V8 (código C++) en lugar de rhino (basado en Java Motor JS, empaquetado como "js.jar"). Entonces puedes usar V8 en lugar de rinoceronte.
Modo de empleo:
de descarga de archivos zip de jsbeautifier.org http://github.com/einars/js-beautify/zipball/master
(esto es una URL de descarga vinculado a un archivo zip como http://download.github.com/einars-js-beautify-10384df.zip)
de edad (ya no funciona, archivo jar se ha ido)
java -jar js.jar name-of-script.js
nueva (alternativa)
instalación/lib compilar v8 desde SVN, ver v8/README.txt archivo zip antes mencionado
./jsbeautify somefile.js
-ha ligeramente diferentes opciones de línea de comandos que la versión rinoceronte,
-y funciona muy bien en Eclipse cuando se configura como una "Herramienta externa"
He escrito un artículo que explica cómo crear un command-line JavaScript beautifier implemented in JavaScript en menos de 5 minutos. YMMV.
- Download the latest stable Rhino and unpack it somewhere, e.g. ~/dev/javascript/rhino
- Download beautify.js which is referenced from aforementioned jsbeautifier.org then copy it somewhere, e.g. ~/dev/javascript/bin/cli-beautifier.js
Add this at the end of beautify.js (using some additional top-level properties to JavaScript):
// Run the beautifier on the file passed as the first argument. print(j23s_beautify(readFile(arguments[0])));
Copy-paste the following code in an executable file, e.g. ~/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 $*
(optional) Add the folder with jsbeautifier.js to PATH or moving to some folder already there.
Este es un sitio web muy útil para embellecer/sangrar sus archivos js. a menudo lo uso. Marque esta : http://jsbeautifier.org/
He aquí un embellecedor de JavaScript escrito en .NET apoyo de 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.
Utilizo este (http://jsbeautifier.atomproject.net/) embellecedor. Está en línea y gratis.
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 en primer lugar.
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
Solía rinoceronte y beautifier.js
de uso desde la consola: java-jar la escritura jsbeautifier.jar muesca
ejemplo: java-jar jsbeautifier.jar " ff función() {return;}" 2
USO de código de java: public static cadena 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 le ahorrará algo de tiempo en su proyecto.
Si está utilizando nodejs luego tratar uglify-js
En Ubuntu 12.04, suponiendo que ya ha instalado nodejs, puede instalar afear con:
sudo npm install -g uglify-js
Y a continuación, obtener las opciones:
uglifyjs -h
Así que 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 embellecer este modo:
uglifyjs foo.js --beautify --output cutefoo.js
uglify
utiliza espacios para el sangrado por defecto, así que si quiero convertir el 4-espacio-muesca a las lengüetas que se puede ejecutar a través de unexpand
la que Ubuntu 12.04 viene con:
unexpand --tabs=4 cutefoo.js > cuterfoo.js
O puede hacerlo todo de una sola vez:
uglifyjs foo.js --beautify | unexpand --tabs=4 > cutestfoo.js
Puede encontrar más información sobre unexpand here
así que después de todo esto termino con un archivo que se ve así:
function foo(bar, baz) {
console.log("something something");
return true;
}
actualización 2016-06-07
Se Parece que el mantenedor de uglify-js ahora está trabajando en version 2 aunque la instalación es la misma.
Esta es la respuesta ** correcta ** para un beautifer de código de línea de comando de JavaScript. – bitek
'uglifyjs -b' hace mucho más que corregir la sangría, reorganiza y reescribe el código, tal vez por eficiencia. Eso no es lo que quería. Estaba usando una versión anterior, en Ubuntu 14.04. –
¿Podría explicar un poco más cómo 'uglifyjs -b' reorganiza y reescribe el código? – erapert
Si usa aquí Notepad ++ es un plugin para Notepad ++ http://www.sunjw.us/jsminnpp/
Creo que cuando se le preguntó sobre la herramienta de línea de comandos que sólo quería embellecer todos sus archivos js en lotes.
En este caso, Intellij IDEA (probado con 11.5) puede hacerlo.
Simplemente 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úrese de que haya dedicado suficiente memoria para la JVM.
En la consola, puede usar Artistic Style (a.k.a. AStyle) con --mode=java
.
Funciona de maravilla y es gratuito, de código abierto y multiplataforma (Linux, Mac OS X, Windows).
Usar la moderna forma de JavaScript:
Uso Grunt en combinación con el jsbeautifier plugin for Grunt
Puede instalar todo fácilmente en su entorno de desarrollo utilizando 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.
Prueba el Notepad ++ Plugin JSMinNpp (nombre cambiado a JSTool desde 1,15)
- 1. Embellecedor y formateador de código en línea
- 2. Escribiendo un embellecedor de código
- 3. Mejor formateador/embellecedor de código C++
- 4. Línea de comando Git en Windows
- 5. Linux 64 parámetros de línea de comando en el ensamblaje
- 6. ¿Cómo obtengo el código de salida de la aplicación desde una línea de comando de Windows?
- 7. Embellecedor de código fuente para C++ (vC++)?
- 8. Alternativa de Windows bat para el comando Bash en línea
- 9. Cómo usar la línea de comando svn en Windows XP?
- 10. Mismo código C que produce resultados diferentes en Mac OS X que Windows y Linux
- 11. PHP - argumentos de línea de comando en Windows
- 12. Redirigir la salida a un argumento de línea de comando de otro comando en Windows
- 13. cURL POST línea de comando en WINDOWS servicio RESTful
- 14. CSS no funciona en Chrome (Linux y Windows)
- 15. Implementación de Windows C# del comando dd de Linux
- 16. Crosscompiling C++; de Linux a Windows, ¿realmente funciona?
- 17. Línea de comando MSBuild 4 y MSDeploy
- 18. ignorando el código de salida del comando en Linux
- 19. ¿Cómo funciona Javascript en línea (en HTML)?
- 20. Configuración de la JVM a través de la línea de comando en Windows
- 21. Agregar rutas de acceso específicas de una aplicación, entonces funciona desde la línea de comando en Windows
- 22. formateador de código Java autónomo/embellecedor/bonita impresora?
- 23. Pasando la línea de comando argumento unicode al código Java
- 24. ¿Cómo ejecutar el código PHP desde la línea de comando?
- 25. * en la línea de comandos de linux
- 26. Cómo implementar un marco adaptador en C++ que funciona tanto en Linux y Windows
- 27. Ejecuta el código php en la línea de comandos
- 28. Eclipse línea de comando de formato de código Java
- 29. compilando en Windows y Linux
- 30. Solo quiero ejecutar PHP en la línea de comando en Windows. ¿Cómo empezar?
el enlace que ha dado está roto, debería ser éste, creo, http: // jsbeautifier .org/ – Sinan
Sinan tiene razón. El enlace se movió a http://jsbeautifier.org/ –
Cómo lo hice: : ~ $ sudo apt-get install libv8-dev libv8-2.2.18 : ~ $ cd einars-js-beautify-f90ce72/v8 : ~ $ g ++ -o jsbeautify jsbeautify.cpp -lv8 -Llib -lpthread Simplemente funciona. ¡Gracias a Einar Lielmanis y a todos los involucrados! –