Я ищу код, который поддерживает JavaScript, и работает как в Windows, так и в Linux и может использоваться в пакетных сценариях. Любые рекомендации?
Командная строка JavaScript-код, который работает в Windows и Linux
Ответ 1
Во-первых, выберите свой любимый JScript-код Pretty Print/Beautifier. Я предпочитаю одно в http://jsbeautifier.org/, потому что это то, что я нашел первым. Загружает его файл https://github.com/beautify-web/js-beautify/blob/master/js/lib/beautify.js
Во-вторых, загрузите и установите Javascript-модуль Mozilla на основе 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
Используйте Pretty Print/Beautifier с шага 1, чтобы написать небольшую оболочку script, которая будет читаться в вашем файле javascript и запускать ее через Pretty Print/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, не слишком сложно заставить это работать с текстовыми потоками.
Ответ 2
Если вы используете nodejs, попробуйте uglify-js
В Ubuntu 12.04, если вы уже установили nodejs, вы можете установить uglify с помощью:
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
Вы можете узнать больше об unpand здесь
поэтому после всего этого я завершаю файл, который выглядит так:
function foo(bar, baz) {
console.log("something something");
return true;
}
обновление 2016-06-07
Похоже, что поддерживающий uglify-js теперь работает над версия 2, хотя установка одинакова.
Ответ 3
ОБНОВЛЕНИЕ Апрель 2014:
Дизайнер был переписан, так как я ответил на это в 2010 году. Там есть модуль python, пакет npm для nodejs и файл jar исчез. Пожалуйста, прочитайте страницу проекта на github.com.
Стиль Python:
$ pip install jsbeautifier
Стиль NPM:
$ npm -g install js-beautify
чтобы использовать его:
$ js-beautify file.js
Оригинальный ответ
Добавление к ответу @Alan Storm
расшифровка командной строки на основе http://jsbeautifier.org/ стала немного проще в использовании, поскольку теперь она (альтернативно) основана на V8 javascript engine (С++ code) вместо носорога (java-JS-движок, упакованный как "js.jar" ). Таким образом, вы можете использовать V8 вместо носорога.
Как использовать:
загрузить jsbeautifier.org zip файл из http://github.com/einars/js-beautify/zipball/master
(это URL-адрес загрузки, связанный с zip файлом, например http://download.github.com/einars-js-beautify-10384df.zip)
old (больше не работает, файл jar отсутствует)
java -jar js.jar name-of-script.js
новый (альтернативный вариант)
установить/скомпилировать v8 lib FROM svn, см. v8/README.txt в вышеупомянутом zip файле
./jsbeautify somefile.js
- имеет несколько разные параметры командной строки, чем версия носорога,
- и отлично работает в Eclipse при настройке в качестве "внешнего инструмента"
Ответ 4
Инструмент My Pretty Diff полностью написан на JavaScript, поэтому он работает одинаково хорошо во всех операционных системах. Он поддерживает украшение и минимизацию JavaScript, CSS, любой язык разметки, который использует разделители стиля XML, включая HTML.
Ответ 5
До сих пор я нашел пару онлайн-сервисов:
По-прежнему ищу что-то, что я могу запустить из командной строки.
Ответ 6
Я не могу добавить комментарий к принятому ответу, так что почему вы видите сообщение, которое должно было не существовать в первую очередь.
В принципе, мне также нужен javascript beautifier в java-коде, и, к моему удивлению, ни один из них не доступен, насколько я мог найти. Поэтому я сам закодировал его полностью на основе принятого ответа (он обертывает jsbeautifier.org beautifier.js script, но может быть вызван из java или командной строки).
Код находится в https://github.com/belgampaul/JsBeautifier
Я использовал rhino и beautifier.js
ИСПОЛЬЗОВАНИЕ с консоли: java -jar jsbeautifier.jar script отступ
example: java -jar jsbeautifier.jar "function ff() {return;}" 2
ИСПОЛЬЗОВАНИЕ из java-кода: public static String jsBeautify (String jsCode, int indentSize)
Вы можете расширить код. В моем случае мне понадобился только отступ, чтобы я мог проверить сгенерированный javascript при разработке.
В надежде, что это сэкономит вам некоторое время в вашем проекте.
Ответ 7
Я написал статью, объясняющую, как построить конструктор JavaScript-интерфейса командной строки, реализованный в JavaScript менее чем за 5 минут. YMMV.
- Загрузите последний стабильный Rhino и распакуйте его где-нибудь, например. ~/DEV/JavaScript/носорог
- Загрузите beautify.js, на который ссылается вышеупомянутый jsbeautifier.org, затем скопируйте его где-нибудь, например. ~/DEV/JavaScript/bin/CLI-beautifier.js
Добавьте это в конец beautify.js(используя некоторые дополнительные свойства верхнего уровня для JavaScript):
// Run the beautifier on the file passed as the first argument. print( j23s_beautify( readFile( arguments[0] )));
Скопируйте вставьте следующий код в исполняемый файл, например. ~/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 $*
(необязательно) Добавьте папку с jsbeautifier.js в PATH или переместитесь в какую-то папку уже там.
Ответ 8
Это очень полезный веб-сайт, чтобы украсить/отложить ваши js файлы. я часто использую его. Проверьте это: http://jsbeautifier.org/
Ответ 9
Здесь javascript beautifier написан на .NET, поддерживающий командную строку, а также интерактивный режим: http://www.rahulsingla.com/blog/2010/12/jsbeautifier-net-javascript-beautifier-in-net
Нет внешней зависимости, кроме .Net 2.0.
Ответ 10
Я считаю, что когда вы спрашивали о инструменте командной строки, вы просто хотели украсить все ваши js файлы в пакетном режиме.
В этом случае Intellij IDEA (тестируется с 11.5) может сделать это.
Вам просто нужно выбрать любой из ваших файлов проекта и выбрать "Код" → "Преобразовать код.." в главном меню IDE. Затем в диалоговом окне выберите "все файлы в каталоге..." и нажмите "enter". Просто убедитесь, что вы выделили достаточно памяти для JVM.
Ответ 11
В консоли вы можете использовать Художественный стиль (a.k.a. AStyle) с помощью --mode=java
.
Он отлично работает, он бесплатный, с открытым исходным кодом и кросс-платформенный (Linux, Mac OS X, Windows).
Ответ 12
Используйте современный способ JavaScript:
Используйте Grunt в сочетании с плагин jsbeautifier для Grunt
Вы можете легко установить все в свою среду с помощью npm.
Все, что вам понадобится, это настроить Gruntfile.js с соответствующими задачами, которые также могут включать в себя объединение файлов, lint, uglify, minify и т.д. и выполнение команды grunt.
Ответ 13
Проблема с выделением украшений - выбор выходных данных и фильтрация, а также отсутствие серьезных осветлителей командной строки. Недавно я начал модифицировать компрессор YUI, чтобы украсить код. Если вы хотите сделать свой собственный декоратор, я должен настоятельно рекомендовать этот подход. YUI является открытым исходным кодом и поставляется с файлом сборки ant, что упрощает его изменение и компиляцию.
Ответ 14
Я использую этот (http://jsbeautifier.atomproject.net/) beautifier. Его онлайн и бесплатно.
Ответ 15
Если вы используете блокнот ++, здесь находится плагин для блокнота ++ http://www.sunjw.us/jsminnpp/
Ответ 16
Попробуйте плагин notepad ++ JSMinNpp (Изменено имя для JSTool с версии 1.15)
Ответ 17
Это бесплатный автономный декодер (и многое другое):