ответ

59

Во-первых, выберите свой любимый Javascript Pretty Print/Beautifier. Я предпочитаю один на http://jsbeautifier.org/, потому что это то, что я нашел первым. Загрузите его файл https://github.com/beautify-web/js-beautify/blob/master/js/lib/beautify.js

Во-вторых, скачайте и установите Javascript-модуль на основе Java, основанный на Java, Rhino. «Установить» немного вводит в заблуждение; Загрузите zip-файл, извлеките все, поместите js.jar в свой путь к Java (или Library/Java/Extensions в OS X). После этого вы можете запускать скрипты с вызовом аналогичен этому

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

Используйте Довольно печати/Beautifier от шага 1, чтобы написать небольшой скрипт, который будет читать в вашем файл JavaScript и запустить его через Хорошенькую Печать/Beautifier из первый шаг. Например

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

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

Rhino дает код JavaScript несколько дополнительных полезных функций, которые не обязательно имеют смысл в контексте браузера, но в контексте консоли. Функция print делает то, что вы ожидаете, и печатает строку. Функция readFile принимает строку пути файла в качестве аргумента и возвращает содержимое этого файла.

Вы бы вызвать что-то вроде выше

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

Вы можете смешивать и сочетать Java и Javascript в вашем Rhino запускать скрипты, так что если вы знаете немного Java это не должно быть слишком сложно, чтобы получить это также работает с текстовыми потоками.

+3

ссылка, которую вы дали, сломана, она должна быть такой, я думаю, http: // jsbeautifier .org/ – Sinan

+0

Синан прав. Ссылка перенесена на http://jsbeautifier.org/ –

+2

Как я это сделал: : ~ $ sudo apt-get install libv8-dev libv8-2.2.18 : ~ $ cd einars-js-beautify-f90ce72/v8 : ~ $ g ++ -o jsbeautify jsbeautify.cpp -lv8 -Llib -lpthread Он просто работает. Спасибо Эйнару Лиелманису и всем участвующим! –

6

До сих пор я нашел пару онлайн из них:

Все еще ищете что-то я бежал из командной строки.

+0

Я предполагаю, что вы нашли то, что вам нужно сейчас (спустя 4 года), но всегда есть json.tool питона: http://richardlog.com/post/12743073497/pretty-printing-json-and-xml-on-mac-osx –

11

Мой Довольно инструмент Diff написана полностью на JavaScript, так что работает одинаково хорошо на всех операционных системах. Он поддерживает украшение и минимизацию JavaScript, CSS, любой язык разметки, который использует разделители стиля XML, включая HTML.

http://prettydiff.com/?m=beautify

-1

Проблема с наделите beautifiers является выбор продукции и фильтрации и разорвать отсутствие серьезных beautifiers командной строки. Недавно я начал модифицировать компрессор YUI, чтобы украсить код. Если вы хотите сделать свой собственный декоратор, я должен настоятельно рекомендовать этот подход. YUI является открытым исходным кодом и поставляется с файлом сборки муравьев, что упрощает его изменение и компиляцию.

14

UPDATE апреля 2014:

Beautifier был переписан, так как я ответил на это в 2010 году Существует в настоящее время модуль питона там, НПМ пакет для nodejs, а файл банка ушел. Пожалуйста, прочитайте project page on github.com.

стиль Python:

$ pip install jsbeautifier 

NPM стиль:

$ npm -g install js-beautify 

использовать:

$ js-beautify file.js 

Оригинальный ответ

Добавление к ответу @Alan Storm

Освободитель командной строки, основанный на http://jsbeautifier.org/, получил немного проще в использовании, поскольку теперь он (альтернативно) основан на движке JavaScript V8 (код на языке C++) вместо носорога (на основе java JS, упакован как «js.jar»). Таким образом, вы можете использовать V8 вместо носорога.

Как использовать:

скачать jsbeautifier.org зип файл из http://github.com/einars/js-beautify/zipball/master

(это загрузить URL связан с зип файл, например, http://download.github.com/einars-js-beautify-10384df.zip)

старый (больше не работает, баночка файл ушел)

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

новый (альтернативный)

установки/компиляции v8 экспромты из SVN см v8/README.txt в вышеупомянутом почтовый файл

./jsbeautify somefile.js 

-обладает несколько различных опций командной строки, чем версия носорога,

-И прекрасно работает в Eclipse при настройке в качестве «внешнего инструмента»

+3

Или, если вы предпочитаете python над v8, там есть * также * модуль python. – keturn

+1

Пакет npm называется js-beautify – brafdlog

0

Я написал статью, объясняющую, как построить command-line JavaScript beautifier implemented in JavaScript менее чем за 5 минут. YMMV.

  1. Download the latest stable Rhino and unpack it somewhere, e.g. ~/dev/javascript/rhino
  2. Download beautify.js which is referenced from aforementioned jsbeautifier.org then copy it somewhere, e.g. ~/dev/javascript/bin/cli-beautifier.js
  3. 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]))); 
    
  4. 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 $* 
    
  5. (optional) Add the folder with jsbeautifier.js to PATH or moving to some folder already there.

0

Это очень полезный сайт, чтобы украсить/отложить ваши файлы js. я часто использую его. Проверьте это: http://jsbeautifier.org/

1

Я не могу добавить комментарий к принятому ответу, поэтому вы видите сообщение, которое не должно было существовать в первую очередь.

В принципе, мне также нужен был javascript beautifier в java-коде, и, к моему удивлению, ни один из них не доступен, насколько я мог найти. Поэтому я сам закодировал его полностью на основе принятого ответа (он обертывает скрипт jsbeautifier.org beautifier .js, но может быть вызван из java или командной строки).

Код находится в https://github.com/belgampaul/JsBeautifier

я использовал носорог и beautifier.js

ИСПОЛЬЗОВАНИЯ из консоли: Java -jar jsbeautifier.jar скрипт отступы

пример: Java -jar jsbeautifier.jar " функция и далее() {возвращение}»2

ИСПОЛЬЗОВАНИЕ из кода Java: открытые статические строки jsBeautify (String jsCode, внутр отступа)

Вы можете расширить код. В моем случае мне понадобился только отступ, чтобы я мог проверить сгенерированный javascript при разработке.

В надежде, что это сэкономит вам время в вашем проекте.

23

Если вы используете nodejs попробуйте uglify-js

На Ubuntu 12.04, если вы уже установили nodejs, вы можете установить уродовать с:

sudo npm install -g uglify-js

А затем получить варианты:

uglifyjs -h

Так что если у меня есть исходный файл foo.js, который выглядит так:

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

Я могу украсить его так:

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

uglify использует пробелы для отступов по умолчанию, так что если я хочу, чтобы преобразовать 4-пространства-отступы для вкладок я могу запустить его через unexpand который приходит Ubuntu 12,04 с:

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

Или вы можете делать все это на одном дыхании:

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

Вы можете узнать больше о unexpand here

так что после всего этого я заводиться с файлом, который выглядит так:

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

обновление 2016-06-07

It что поддерживающий uglify-js теперь работает на version 2, хотя установка такая же.

+2

Это ** правильный ** ответ для командной строки JavaScript code beautifer. – bitek

+0

'uglifyjs -b' делает намного больше, чем просто исправить отступ, он перестраивает и перезаписывает код, возможно, для эффективности. Я этого не хотел. Я использовал более старую версию, в Ubuntu 14.04. –

+0

Не могли бы вы объяснить немного больше, как 'uglifyjs -b' переупорядочивает и переписывает код? – erapert

0

Я считаю, что, когда вы спросили о инструмент командной строки вы просто хотели, чтобы украсить все JS файлы в пакетном режиме.

В этом случае Intellij IDEA (проверено с 11.5) может это сделать.

Вам нужно всего лишь выбрать любой файл вашего проекта и выбрать «Код» -> «Преобразовать код ..» в главном меню IDE. Затем в диалоговом окне выберите «все файлы в каталоге ...» и нажмите «enter». Просто убедитесь, что вы выделили достаточно памяти для JVM.

0

В консоли вы можете использовать Artistic Style (a.k.a. AStyle) с --mode=java.
Он отлично работает, и он бесплатный, с открытым исходным кодом и кросс-платформенный (Linux, Mac OS X, Windows).

0

Используйте современный способ JavaScript:

Grunt Использование в сочетании с jsbeautifier plugin for Grunt

Вы можете установить все легко в среде Dev с помощью npm.

Все, что вам нужно, это установить Gruntfile.js с соответствующими задачами, которые также могут включать в себя объединение файлов, lint, uglify, minify и т. Д. И запуск команды grunt.

Смежные вопросы