Estou escrevendo um script em lote para embelezar o código JavaScript. Ele precisa funcionar no Windows e no Linux .
Como posso embelezar o código JavaScript usando as ferramentas de linha de comando?
Estou escrevendo um script em lote para embelezar o código JavaScript. Ele precisa funcionar no Windows e no Linux .
Como posso embelezar o código JavaScript usando as ferramentas de linha de comando?
Respostas:
Primeiro, escolha seu Pretty Print / Beautifier baseado em Javascript favorito. Eu prefiro aquele emhttp://jsbeautifier.org/ , porque foi o que encontrei primeiro. Faz download de seu arquivo https://github.com/beautify-web/js-beautify/blob/master/js/lib/beautify.js
Em segundo lugar, baixe e instale o mecanismo Javascript baseado em Java do grupo Mozilla, Rhino . "Instalar" é um pouco enganador; Baixe o arquivo zip, extraia tudo, coloque js.jar em seu classpath Java (ou Library / Java / Extensions no OS X). Você pode então executar scripts com uma invocação semelhante a esta
Use o Pretty Print / Beautifier da etapa 1 para escrever um pequeno script de shell que será lido em seu arquivo javascript e o executará por meio do Pretty Print / Beautifier da etapa um. Por exemplo
Rhino fornece ao javascript algumas funções úteis extras que não necessariamente fazem sentido no contexto de um navegador, mas fazem em um contexto de console. A função print faz o que você espera e imprime uma string. A função readFile aceita uma string de caminho de arquivo como argumento e retorna o conteúdo desse arquivo.
Você invocaria o acima algo como
Você pode misturar e combinar Java e Javascript em seus scripts de execução do Rhino, então se você conhece um pouco de Java não deve ser muito difícil executá-lo com fluxos de texto também.
fonte
ATUALIZAÇÃO de abril de 2014 :
O embelezador foi reescrito desde que respondi a isso em 2010. Agora há um módulo python lá, um pacote npm para nodejs e o arquivo jar se foi. Leia a página do projeto em github.com .
Estilo Python:
Estilo NPM:
para usá-lo:
Resposta original
Adicionando à resposta de @Alan Storm
o embelezador de linha de comando baseado em http://jsbeautifier.org/ ficou um pouco mais fácil de usar, porque agora (alternativamente) é baseado no motor javascript V8 (código c ++) em vez de rhino (motor JS baseado em java, empacotado como "js.jar"). Então você pode usar o V8 em vez do rhino.
Como usar:
baixe o arquivo zip jsbeautifier.org em http://github.com/einars/js-beautify/zipball/master
(este é um URL de download vinculado a um arquivo zip, como http://download.github.com/einars-js-beautify-10384df.zip )
antigo (não funciona mais, o arquivo jar se foi)
novo (alternativa)
instalar / compilar lib v8 DE svn, consulte v8 / README.txt no arquivo zip mencionado acima
-tem opções de linha de comando ligeiramente diferentes da versão rhino,
- e funciona muito bem no Eclipse quando configurado como uma "ferramenta externa"
fonte
Se você estiver usando nodejs, tente uglify-js
No Linux ou Mac, supondo que você já tenha o nodejs instalado, você pode instalar o uglify com:
E, em seguida, obtenha as opções:
Portanto, se eu tiver um arquivo de origem
foo.js
parecido com este:Posso embelezá-lo assim:
uglify
usa espaços para indentação por padrão, portanto, se eu quiser converter o recuo de 4 espaços em guias, posso executá-lo com ounexpand
Ubuntu 12.04:Ou você pode fazer tudo de uma vez:
Você pode descobrir mais sobre não expandido aqui
então, depois de tudo isso, acabo com um arquivo assim:
atualização 07/06/2016
Parece que o mantenedor do uglify-js agora está trabalhando na versão 2, embora a instalação seja a mesma.
fonte
uglifyjs -b
faz muito mais do que apenas corrigir o recuo, ele reorganiza e reescreve o código, talvez para eficiência. Não era isso que eu queria. Eu estava usando uma versão mais antiga, no Ubuntu 14.04.uglifyjs -b
reorganiza e reescreve o código?No Ubuntu LTS
fonte
js-beautify -o file.js file.js
No console, você pode usar o Estilo Artístico (também conhecido como AStyle) com
--mode=java
.Ele funciona muito bem e é gratuito, de código aberto e multiplataforma (Linux, Mac OS X, Windows).
fonte
Use a maneira moderna de JavaScript:
Use o Grunt em combinação com o plugin jsbeautifier para Grunt
Você pode instalar tudo facilmente em seu ambiente de desenvolvimento usando npm .
Tudo que você precisa é configurar um Gruntfile.js com as tarefas apropriadas, que também podem envolver concatenação de arquivo, lint, uglify, minify etc, e executar o comando grunt.
fonte
Não consigo adicionar um comentário à resposta aceita, então é por isso que você vê uma postagem que não deveria ter existido.
Basicamente, eu também precisava de um embelezador de javascript em um código java e, para minha surpresa, nenhum está disponível até onde pude encontrar. Portanto, codifiquei um inteiramente com base na resposta aceita (envolve o script jsbeautifier.org beautifier .js, mas pode ser chamado a partir de java ou da linha de comando).
O código está localizado em https://github.com/belgampaul/JsBeautifier
Usei rhino e beautifier.js
USO do console: recuo do script java -jar jsbeautifier.jar
exemplo: java -jar jsbeautifier.jar "function ff () {return;}" 2
USAGE do código java: public static String jsBeautify (String jsCode, int indentSize)
Você está convidado a estender o código. No meu caso só precisei do recuo para verificar o javascript gerado durante o desenvolvimento.
Na esperança de economizar algum tempo em seu projeto.
fonte
Escrevi um artigo explicando como construir um embelezador de JavaScript de linha de comando implementado em JavaScript em menos de 5 minutos. YMMV.
fonte
Eu acredito que quando você perguntou sobre a ferramenta de linha de comando, você só queria embelezar todos os seus arquivos js em lote.
Neste caso, o Intellij IDEA (testado com 11.5) pode fazer isso.
Você só precisa selecionar qualquer um dos seus arquivos de projeto e selecionar "Código" -> "Reformatar código .." no menu principal do IDE. Em seguida, na caixa de diálogo, selecione "todos os arquivos do diretório ..." e pressione "Enter". Apenas certifique-se de ter dedicado memória suficiente para a JVM.
fonte
Você tem algumas opções de revestimento. Use com npm ou autônomo com npx .
Semistandar
Padrão
Mais bonita
fonte