YUI Compressor — это сжатый JavaScript, который, помимо удаления комментариев и пробелов, обфусцирует локальные переменные, используя наименьшее возможное имя переменной. Эта обфускация безопасна, даже при использовании конструкций, таких как 'eval' или 'with' (хотя сжатие не является оптимальным в этих случаях). В сравнении с jsmin, среднее сокращение составляет около 20%.
YUI Compressor также способен безопасно сжимать файлы CSS. Определение, какой сжиматор используется, зависит от расширения файла (js или css).
ant
./tests/suite.sh
Вы можете использовать компрессор в пакете Node.js и сжимать файлы и строки асинхронно. Он всё ещё использует Java под капотом
npm i yuicompressor
var compressor = require('yuicompressor');
compressor.compress('/путь/к/файлу или Строка JS', {
//Параметры компрессора:
charset: 'utf8',
type: 'js',
nomunge: true,
'line-break': 80
}, function(err, data, extra) {
//err Если компрессор сталкивается с ошибкой, она будет здесь
//data Сжатая строка, которую вы можете записать там, где вам нужно
//extra Стандартный вывод ошибки (предупреждения выводятся здесь, если вы хотите их отобразить)
});
Параметры:
charset
// по умолчанию 'utf8'type
// по умолчанию 'js'line-break
nomunge
preserve-semi
disable-optimizations
Задачи-h, --help
Выводит справку по использованию YUI Compressor
--line-break
Некоторые средства контроля версий не любят файлы, содержащие строки длиной более 8000 символов. Параметр line-break используется в этом случае для разделения длинных строк после определенного столбца. Он также может использоваться для улучшения читаемости кода, облегчения отладки (особенно с MS Script Debugger). Укажите 0, чтобы получить перенос строки после каждого разделителя в JavaScript и после каждого правила в CSS.
--type js|css
Тип сжатия (JavaScript или CSS) выбирается в зависимости от расширения имени входного файла (.js или .css). Этот параметр обязателен, если не указан входной файл. В противном случае этот параметр требуется только в том случае, если расширение входного файла не 'js' и не 'css'.
--charset character-set
Если указано поддерживаемое кодирование символов, YUI Compressor будет использовать его для чтения входного файла. В противном случае предполагается, что используется стандартное кодирование символов платформы. Выходной файл кодируется с использованием того же кодирования символов. -o outfile
Размещает выходные данные в файле outfile. Если этот параметр не указан, YUI Compressor по умолчанию использует стандартный вывод, который можно перенаправить в файл. Поддерживает синтаксис фильтра для выражения шаблона выходных данных при наличии нескольких входных файлов. Например:
java -jar yuicompressor.jar -o '.css$:-min.css' *.css
... сжмет все файлы .css и сохранит их как -min.css.
-v, --verbose
Отображает информационные сообщения и предупреждения.
--nomunge
Только сжатие. Не обфусцировать локальные символы.
--preserve-semi
Сохраняет ненужные точки с запятой (например, перед закрывающейся фигурной скобкой). Этот параметр полезен, когда сжатый код должен быть проверен JSLint (что актуально для YUI, например).
--disable-optimizations
Отключает все встроенные микрооптимизации.
Если входной файл не указан, по умолчанию используется стандартный ввод.
Поддерживает использование шаблонов для указания нескольких входных файлов.
YUI Compressor требует версию Java >= 1.5.
Можно предотвратить обфусцирование локальной переменной, вложенной функции или аргумента функции, используя "подсказки". Подсказка — это строка, расположенная в самом начале тела функции, например:
function fn (arg1, arg2, arg3) {
"arg2:nomunge, localVar:nomunge, nestedFn:nomunge"; ...
var localVar;
...
function nestedFn () {
....
}
...
}
Подсказка сама по себе исчезает из сжатого файла.
/*!
, сохраняются. Это полезно для комментариев, содержащих информацию о правах собственности или лицензии. С версии 2.4.8 символ '!' больше не удаляется YUICompressor. Например:```
/*!
Остальные комментарии остаются нетронутыми YUICompressor.
Модифицированные файлы Rhino
----------------------------
YUI Compressor использует модифицированную версию библиотеки Rhino
(http://www.mozilla.org/rhino/) Изменения были внесены для поддержки
условных комментариев JScript, сохраненных комментариев, неэкранированных
символов '/' в регулярных выражениях, а также для возможности оптимизации
экранированных кавычек в строковых литералах.
Авторские права и лицензия
--------------------------
Авторские права (c) 2013 Yahoo! Inc. Все права защищены.
Авторские права, содержащиеся в содержимом этого файла, лицензированы
Yahoo! Inc. под лицензией BSD (пересмотренная) открытого исходного кода.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )