Domanda

Sto scrivendo uno script batch per abbellire il codice JavaScript.Bisogna lavorare su entrambi finestre E Linux.

Come posso abbellire il codice JavaScript utilizzando gli strumenti da riga di comando?

È stato utile?

Soluzione

Per prima cosa, scegli il tuo Pretty Print/Beautifier preferito basato su Javascript.Preferisco quello a http://jsbeautifier.org/, perché è quello che ho trovato per primo.Scarica il suo file https://github.com/beautify-web/js-beautify/blob/master/js/lib/beautify.js

In secondo luogo, scaricare e installare il motore Javascript basato su Java del gruppo Mozilla, Rinoceronte."Installa" è un po' fuorviante;Scarica il file zip, estrai tutto, posiziona js.jar nel tuo classpath Java (o Library/Java/Extensions su OS X).È quindi possibile eseguire script con un'invocazione simile a questa

java -cp js.jar org.mozilla.javascript.tools.shell.Main name-of-script.js

Utilizza Pretty Print/Beautifier dal passaggio 1 per scrivere un piccolo script di shell che leggerà il tuo file javascript e lo eseguirà tramite Pretty Print/Beautifier dal passaggio uno.Per esempio

//original code    
(function() { ... js_beautify code ... }());

//new code
print(global.js_beautify(readFile(arguments[0])));

Rhino fornisce a Javascript alcune funzioni extra utili che non hanno necessariamente senso nel contesto di un browser, ma lo hanno in un contesto di console.La funzione print fa quello che ti aspetteresti e stampa una stringa.La funzione readFile accetta una stringa del percorso del file come argomento e restituisce il contenuto di quel file.

Invocheresti quanto sopra in qualcosa del genere

java -cp js.jar org.mozilla.javascript.tools.shell.Main beautify.js file-to-pp.js

Puoi mescolare e abbinare Java e Javascript negli script di esecuzione di Rhino, quindi se conosci un po' di Java non dovrebbe essere troppo difficile farlo funzionare anche con i flussi di testo.

Altri suggerimenti

Se stai usando nodejs, prova brutto-js

Su Ubuntu 12.04, supponendo che tu abbia già installato nodejs, puoi installare uglify con:

sudo npm install -g uglify-js

E poi ottieni le opzioni:

uglifyjs -h

Quindi, se ho un file sorgente foo.js che assomiglia a questo:

// foo.js -- minified
function foo(bar,baz){console.log("something something");return true;}

Posso abbellirlo in questo modo:

uglifyjs foo.js --beautify --output cutefoo.js

uglify utilizza gli spazi per il rientro per impostazione predefinita, quindi se voglio convertire il rientro di 4 spazi in tabulazioni posso eseguirlo unexpand con cui Ubuntu 12.04 viene fornito:

unexpand --tabs=4 cutefoo.js > cuterfoo.js

Oppure puoi fare tutto in una volta:

uglifyjs foo.js --beautify | unexpand --tabs=4 > cutestfoo.js

Puoi scoprire di più su unexpand Qui

quindi dopo tutto questo mi ritrovo con un file che assomiglia a questo:

function foo(bar, baz) {
    console.log("something something");
    return true;
}

aggiornamento 2016-06-07

Sembra che il manutentore di uglify-js stia ora lavorando versione 2 anche se l'installazione è la stessa.

AGGIORNAMENTO aprile 2014:

L'abbellitore è stato riscritto da quando ho risposto a questa domanda nel 2010.Ora c'è un modulo Python, un pacchetto npm per nodejs e il file jar non c'è più.Si prega di leggere il pagina del progetto su github.com.

Stile pitone:

 $ pip install jsbeautifier

Stile NPM:

 $ npm -g install js-beautify

per usarlo:

 $ js-beautify file.js

Risposta originale

Aggiunta alla risposta di @Alan Storm

l'abbellitore della riga di comando basato su http://jsbeautifier.org/ è diventato un po' più facile da usare, perché ora è (in alternativa) basato sul motore javascript V8 (codice C++) invece che su rhino (motore JS basato su Java, confezionato come "js.jar").Quindi puoi usare V8 invece di rhino.

Come usare:

scarica il file zip jsbeautifier.org dahttp://github.com/einars/js-beautify/zipball/master

(si tratta di un URL di download collegato a un file zip come http://download.github.com/einars-js-beautify-10384df.zip)

vecchio (non funziona più, il file jar è sparito)

  java -jar js.jar  name-of-script.js

nuovo (alternativo)

installa/compila v8 lib DA svn, vedi v8/README.txt nel file zip sopra menzionato

  ./jsbeautify somefile.js

-ha opzioni della riga di comando leggermente diverse rispetto alla versione di rhino,

-e funziona benissimo in Eclipse se configurato come "Strumento esterno"

Su Ubuntu 18.04 LTS

$ sudo apt install jsbeautifier
$ js-beautify ugly.js > beautiful.js

Nella console è possibile utilizzare Stile artistico (akaAStyle) con --mode=java.
Funziona benissimo ed è gratuito, open source e multipiattaforma (Linux, Mac OS X, Windows).

Non sono in grado di aggiungere un commento alla risposta accettata, ecco perché vedi un post che non avrebbe dovuto esistere in primo luogo.

Fondamentalmente avevo anche bisogno di un abbellitore Javascript in un codice Java e con mia sorpresa non ne ho trovato nessuno disponibile.Quindi ne ho codificato uno io stesso interamente in base alla risposta accettata (racchiude lo script jsbeautifier.org beautifier .js ma è richiamabile da Java o dalla riga di comando).

Il codice si trova in https://github.com/belgampaul/JsBeautifier

Ho usato rinoceronte e beautifier.js

UTILIZZO da console:rientro dello script java -jar jsbeautifier.jar

esempio:java -jar jsbeautifier.jar "funzione ff() {return;}" 2

UTILIZZO dal codice Java:public static String jsBeautify(String jsCode, int indentSize)

Puoi estendere il codice.Nel mio caso avevo solo bisogno del rientro in modo da poter controllare il javascript generato durante lo sviluppo.

Nella speranza che ti faccia risparmiare un po' di tempo nel tuo progetto.

Ho scritto un articolo che spiega come costruire un file abbellitore JavaScript da riga di comando implementato in JavaScript in meno di 5 minuti.YMMV.

  1. Scarica l'ultima versione stabile di Rhino e scompattalo da qualche parte, ad es.~/dev/javascript/rhino
  2. Scarica beautify.js a cui fa riferimento il suddetto jsbeautifier.org, quindi copialo da qualche parte, ad es.~/dev/javascript/bin/cli-beautifier.js
  3. Aggiungi questo alla fine di beautify.js (utilizzando alcune proprietà di livello superiore aggiuntive a JavaScript):

    // Run the beautifier on the file passed as the first argument.
    print( j23s_beautify( readFile( arguments[0] )));
    
  4. Copia e incolla il seguente codice in un file eseguibile, ad es.~/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 $*
    
  5. (facoltativo) Aggiungi la cartella con jsbeautifier.js al PERCORSO o spostala in una cartella già presente.

Credo che quando hai chiesto informazioni sullo strumento da riga di comando volevi solo abbellire tutti i tuoi file js in batch.

In questo caso Intellij IDEA (testato con 11.5) può farlo.

Devi solo selezionare uno qualsiasi dei file di progetto e selezionare "Codice"->"Riformatta codice..." nel menu principale dell'IDE.Quindi nella finestra di dialogo seleziona "tutti i file nella directory ..." e premi "invio".Assicurati solo di aver dedicato memoria sufficiente per la JVM.

Utilizza il moderno metodo JavaScript:

Utilizzo Grugnito in combinazione con il plugin jsbeautifier per Grunt

Puoi installare tutto facilmente nel tuo ambiente di sviluppo utilizzando npm.

Tutto ciò di cui avrai bisogno è impostare un Gruntfile.js con le attività appropriate, che possono anche coinvolgere la concatenazione di file, lint, uglify, minify ecc., ed eseguire il comando grunt.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top