Для любого веб приложения или сайта довольно важным критерием является скорость работы. Важно что бы страницы были как можно легче.
Один из способов это "минификация кода", за счет удаления ненужных символов, пробелов, комментариев и прочих разделителей.
В отличии от различных плагинов под различные CMS, YUICompressor позволяет подготавливать файлы на других серверах, переде публикацией и не тратит ресурсы веб сервера.
Одним из инструментов является YUI Compressor, который является частью библиотеки JavaScript YUI (Yahoo! User Interface), который можно использовать для сжатия CSS файлов и подготовки их распространения в дальнейшем.
YUICompressor так же позволяет минифицировать JS файлы, но так как проект уже давно не разваривается, анализ большинства JS файлов заканчивается ошибкой. И сейчас он пригоден для минификации CSS.
Установка YUI Compressor в CentOS
Устанавливаем Java
1 | yum install java |
создаем директорию, куда установим YUI Compressor
1 | mkdir -p /usr/share/java |
скачиваем последнюю на данный момент версию
1 | wget https://github.com/yui/yuicompressor/releases/download/v2.4.8/yuicompressor-2.4.8.jar -P /usr/share/java |
и создадим скрипт запуска
1 | nano /usr/bin/yui |
со следующим текстом
1 2 | #!/bin/sh java -jar /usr/share/java/yuicompressor-2.4.8.jar "$@" |
установим права на запуск
1 | chmod +x /usr/bin/yui |
теперь можно использоваться команду yui для сжатия CSS файлов
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | yui YUICompressor Version: 2.4.8 Usage: java -jar yuicompressor-2.4.8.jar [options] [input file] Global Options -V, --version Print version information -h, --help Displays this information --type <js|css> Specifies the type of the input file --charset <charset> Read the input file using <charset> --line-break <column> Insert a line break after the specified column number -v, --verbose Display informational messages and warnings -o <file> Place the output into <file>. Defaults to stdout. Multiple files can be processed using the following syntax: java -jar yuicompressor.jar -o '.css$:-min.css' *.css java -jar yuicompressor.jar -o '.js$:-min.js' *.js JavaScript Options --nomunge Minify only, do not obfuscate --preserve-semi Preserve all semicolons --disable-optimizations Disable all micro optimizations If no input file is specified, it defaults to stdin. In this case, the 'type' option is required. Otherwise, the 'type' option is required only if the input file extension is neither 'js' nor 'css'. |
Сжатие CSS файлов из командной строки
для сжатия и миникации используем следующую команду
1 | yui animate.css -o animate.min.css |
проверим размер файла:
1 2 3 4 | wc animate.css animate.min.css 4074 9600 95378 animate.css 6 857 75692 animate.min.css 4080 10457 171070 total |
1 2 3 4 | ls -l -h total 172K -rw-r--r--. 1 root root 94K Dec 7 05:49 animate.css -rw-r--r--. 1 root root 74K Dec 7 05:50 animate.min.cs |
размер файла изменился на 20Кб.