Командная строка JavaScript-код beautifier, который работает на Windows и Linux


83

Я ищу код, который поддерживает JavaScript и работает как в Windows, так и в Linux и может использоваться в пакетных сценариях. Любые рекомендации?

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/ 12 янв. 102010-01-12 13:26:40

  0

Синан прав. Ссылка перенесена на http://jsbeautifier.org/ 15 янв. 102010-01-15 20:17:54

+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 Он просто работает. Спасибо Эйнару Лиелманису и всем участвующим! 06 мар. 112011-03-06 13:45:20

+1

Кажется, это движущаяся цель. Теперь информация на сайте jsbeautifier говорит, что она написана на python. 26 апр. 112011-04-26 03:57:03

  0

Обновление для пользователей cmdline, следующее репо легко установить автономные средства командной строки для довольно печати js: https://github.com/einars/js-beautify.git 29 авг. 122012-08-29 19:31:53

  0

Использовать современный подход JS с использованием Grunt: http://stackoverflow.com/questions/18985/what-javascript-code-beautifier-can-i-use-via-the-command-line-on-windows-and-li/25855828#25855828 15 сен. 142014-09-15 19:53:23

  0

Вы можете запустить это очень легко без java от узла. Существует пакет npm, называемый js-beautify. После его установки вы можете запустить команду js-beautify, передав нужные вам файлы в качестве параметра. Подробнее см .: https://www.npmjs.com/package/js-beautify 13 окт. 152015-10-13 20:28:37

  0

Должно быть, я делаю что-то неправильно. Я получаю * js: исключено исключение выполнения JavaScript JavaScript: ReferenceError: «js_beautify» не определен. * После запуска команды * java -jar js.jar beautify.js my-ugly-javascript.js *. Я добавил 'print (js_beautify (readFile (arguments [0])));' в нижней части beautify.js и запускаю Rhino 1.7.7. Есть идеи? 25 янв. 162016-01-25 12:47:40

  0

Я нашел, что это не понравилось обозначение '(function() {..blah ..}());' и поэтому он никогда не исполнял этот код. Я прокомментировал первый '(function() {' и последний '}());' и начал работать.Там вы идете :) 25 янв. 162016-01-25 13:25:04

  0

Вам нужно будет обратиться к 'global.js_beautify'. Я сделаю редактирование. 16 янв. 172017-01-16 00:26:57


6

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

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

  0

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


-3

Это бесплатный автономный Beautifier (и многое другое):

http://www.yaldex.com/Free_JavaScript_Editor.htm


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. 04 окт. 112011-10-04 00:15:43

+1

Пакет npm называется js-beautify 13 окт. 152015-10-13 20:31:27


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/


0

Вот Javascript Beautifier написано в .NET с поддержкой командной строки, а также интерактивный режим: http://www.rahulsingla.com/blog/2010/12/jsbeautifier-net-javascript-beautifier-in-net

Там нет внешней зависимости, кроме .Net 2.0.


-1

Я использую этот (http://jsbeautifier.atomproject.net/) beautifier. Его онлайн и бесплатно.


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. 19 апр. 162016-04-19 09:05:35

  0

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

  0

Не могли бы вы объяснить немного больше, как 'uglifyjs -b' переупорядочивает и переписывает код? 14 авг. 172017-08-14 18:06:38


-1

Если вы используете Notepad ++ здесь плагин для Notepad ++ http://www.sunjw.us/jsminnpp/


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.


-1

Попробуйте Notepad ++ плагин JSMinNpp (Измененное имя JSTool так 1.15)

http://www.sunjw.us/jsminnpp/