J'écris un script batch afin d'embellir le code JavaScript. Il doit fonctionner à la fois sous Windows et Linux .
Comment puis-je embellir le code JavaScript à l'aide des outils de ligne de commande?
J'écris un script batch afin d'embellir le code JavaScript. Il doit fonctionner à la fois sous Windows et Linux .
Comment puis-je embellir le code JavaScript à l'aide des outils de ligne de commande?
Réponses:
Tout d'abord, choisissez votre Pretty Print / Beautifier basé sur Javascript. Je préfère celui àhttp://jsbeautifier.org/ , car c'est ce que j'ai trouvé en premier. Télécharge son fichier https://github.com/beautify-web/js-beautify/blob/master/js/lib/beautify.js
Ensuite, téléchargez et installez le moteur Javascript basé sur Java du groupe Mozilla, Rhino . "Installer" est un peu trompeur; Téléchargez le fichier zip, extrayez tout, placez js.jar dans votre chemin de classe Java (ou Bibliothèque / Java / Extensions sous OS X). Vous pouvez ensuite exécuter des scripts avec un appel similaire à celui-ci
Utilisez le Pretty Print / Beautifier de l'étape 1 pour écrire un petit script shell qui lira votre fichier javascript et l'exécutera via le Pretty Print / Beautifier de la première étape. Par exemple
Rhino donne à javascript quelques fonctions supplémentaires utiles qui n'ont pas nécessairement de sens dans un contexte de navigateur, mais qui le font dans un contexte de console. La fonction print fait ce que vous attendez et imprime une chaîne. La fonction readFile accepte une chaîne de chemin de fichier comme argument et renvoie le contenu de ce fichier.
Vous invoqueriez quelque chose comme ci-dessus
Vous pouvez mélanger et associer Java et Javascript dans vos scripts d'exécution de Rhino, donc si vous connaissez un peu Java, il ne devrait pas être trop difficile de le faire fonctionner avec des flux de texte.
la source
MISE À JOUR Avril 2014 :
L'embellisseur a été réécrit depuis que j'ai répondu à cela en 2010. Il y a maintenant un module python dedans, un package npm pour nodejs, et le fichier jar a disparu. Veuillez lire la page du projet sur github.com .
Style Python:
Style NPM:
pour l'utiliser:
Réponse originale
Ajout à Answer of @Alan Storm
l'embellisseur de ligne de commande basé sur http://jsbeautifier.org/ est devenu un peu plus facile à utiliser, car il est maintenant (alternativement) basé sur le moteur javascript V8 (code c ++) au lieu de rhino (moteur JS basé sur java, emballé comme "js.jar"). Vous pouvez donc utiliser V8 au lieu de rhino.
Comment utiliser:
télécharger le fichier zip jsbeautifier.org à partir de http://github.com/einars/js-beautify/zipball/master
(il s'agit d'une URL de téléchargement liée à un fichier zip tel que http://download.github.com/einars-js-beautify-10384df.zip )
ancien (ne fonctionne plus, le fichier jar a disparu)
nouveau (alternative)
installez / compilez v8 lib FROM svn, voir v8 / README.txt dans le fichier zip mentionné ci-dessus
-a des options de ligne de commande légèrement différentes de la version rhino,
-et fonctionne très bien dans Eclipse lorsqu'il est configuré comme un "outil externe"
la source
Si vous utilisez nodejs, essayez uglify-js
Sous Linux ou Mac, en supposant que vous ayez déjà installé nodejs, vous pouvez installer uglify avec:
Et puis obtenez les options:
Donc, si j'ai un fichier source
foo.js
qui ressemble à ceci:Je peux l'embellir comme ça:
uglify
utilise des espaces pour l'indentation par défaut, donc si je veux convertir l'indentation à 4 espaces en onglets, je peux l'exécuter avecunexpand
Ubuntu 12.04:Ou vous pouvez tout faire en une seule fois:
Vous pouvez en savoir plus sur unxpand ici
donc après tout cela, je me retrouve avec un fichier qui ressemble à ceci:
mise à jour 07/06/2016
Il semble que le mainteneur de uglify-js travaille maintenant sur la version 2 bien que l'installation soit la même.
la source
uglifyjs -b
fait beaucoup plus que corriger l'indentation, il réorganise et réécrit le code, peut-être pour plus d'efficacité. Ce n'est pas ce que je voulais. J'utilisais une ancienne version, dans Ubuntu 14.04.uglifyjs -b
réorganise et réécrit le code?Sur Ubuntu LTS
la source
js-beautify -o file.js file.js
Dans la console, vous pouvez utiliser Artistic Style (aka AStyle) avec
--mode=java
.Cela fonctionne très bien et c'est gratuit, open-source et multiplateforme (Linux, Mac OS X, Windows).
la source
Utilisez la méthode JavaScript moderne:
Utilisez Grunt en combinaison avec le plugin jsbeautifier pour Grunt
Vous pouvez tout installer facilement dans votre environnement de développement en utilisant npm .
Tout ce dont vous aurez besoin est de configurer un Gruntfile.js avec les tâches appropriées, qui peuvent également impliquer la concaténation de fichiers, lint, uglify, minify, etc., et exécuter la commande grunt.
la source
Je ne suis pas en mesure d'ajouter un commentaire à la réponse acceptée, c'est pourquoi vous voyez un message qui n'aurait pas dû exister au départ.
Fondamentalement, j'avais également besoin d'un embellisseur javascript dans un code java et à ma grande surprise, aucun n'est disponible pour autant que je puisse trouver. J'en ai donc codé un moi-même entièrement en fonction de la réponse acceptée (il enveloppe le script jsbeautifier.org beautifier .js mais peut être appelé à partir de java ou de la ligne de commande).
Le code se trouve sur https://github.com/belgampaul/JsBeautifier
J'ai utilisé rhino et beautifier.js
UTILISATION depuis la console: indentation du script java -jar jsbeautifier.jar
exemple: java -jar jsbeautifier.jar "function ff () {return;}" 2
USAGE from java code: public static String jsBeautify (String jsCode, int indentSize)
Vous êtes invités à étendre le code. Dans mon cas, je n'avais besoin que de l'indentation pour pouvoir vérifier le javascript généré pendant le développement.
Dans l'espoir que cela vous fera gagner du temps dans votre projet.
la source
J'ai écrit un article expliquant comment créer un embellisseur JavaScript en ligne de commande implémenté en JavaScript en moins de 5 minutes. YMMV.
la source
Je crois que lorsque vous avez posé des questions sur l'outil de ligne de commande, vous vouliez simplement embellir tous vos fichiers js par lots.
Dans ce cas, Intellij IDEA (testé avec 11.5) peut le faire.
Il vous suffit de sélectionner l'un de vos fichiers de projet et de sélectionner "Code" -> "Reformater le code .." dans le menu principal de l'IDE. Ensuite, dans la boîte de dialogue, sélectionnez "tous les fichiers du répertoire ..." et appuyez sur "Entrée". Assurez-vous simplement de consacrer suffisamment de mémoire à la JVM.
la source
Vous avez quelques choix d'une seule doublure. Utiliser avec npm ou autonome avec npx .
Sémistandar
la norme
Plus jolie
la source