-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
26 lines (18 loc) · 5.13 KB
/
README
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
26
Ни для кого не секрет, что одним из важных шагов при оптимизации javascript на сайтах, является минимизация исходных скриптов. На данный момент основными инструментами для сжатия javascript являются yui-compressor (утилита для командной строки в UNIX-подобных системах), packer от Dean Edwards (онлайн-сервис) и Google Closure Compiler – наиболее продвинутый на данный момент инструмент (существует как онлайн-версия, так и свободное java-приложение, запускаемое из командной строки). Однако с запуском java-приложение не в UNIX-подобной операционной системе могут возникнуть сложности, так как для своей работы оно потребует эмуляции через Cygwin. Однако существует и альтернативный способ сделать кроссплатформенную утилиту для командной строки – это использовать онлайн-сервис Google Closure Compiler прямо из командной строки.
Для этого нам понадобится php5 с модулями php5-cli и php5-curl, что сделает нашу утилиту кроссплатформенной. Установку и использование утилиты я буду описывать с точки зрения linux-подобных операционных систем семейства Debian.
Начнем с того, что если php5 с нужными модулями не установлен, то набираем в терминале команду:
sudo aptitude install php5 php5-cli php5-curl
Затем создаем скрипт, который будет отправлять POST-запросом исходные коды javascript на страницу с онлайн-сервисом Google Closure Compiler и возвращать нам оптимизированный и сжатый код. Я назвал скрипт gcconline, но можно подобрать ему любое другое название.
После скачивания, рекомендую поместить скрипт в каталог /usr/bin, назначить его владельцем пользователя root и выставить ему права 755. Если скрипт скачался в домашний каталог, то последовательность команд будет такой:
sudo mv ~/gcconline /usr/bin/gcconline
sudo chown root:root /usr/bin/gcconline
sudo chmod 755 /usr/bin/gcconline
Далее можно приступать к практическому использованию скрипта. Параметры, описывающие имена входного и выходного файлов, аналогичны параметрам утилиты yui-compressor. Поэтому, самым распространенным вариантом команды будет, например, такой:
gcconline -o jquery.min.js jquery.js
Эта команда использует в качестве исходного файла скрипт jquery.js и после окончания своей работы выдаст скрипт, сжатый с настройками «Advansed optimizations». Также можно использовать варианты команд:
gcconline -s -o jquery.min.js jquery.js
gcconline -w -o jquery.min.js jquery.js
Первый вариант команды использует упрощенную оптимизацию «Simple optimizations» и размер сжатого файла в этом случае получится больше, чем при использовании «Advansed optimizations». Второй вариант команды никакой оптимизации проводить не будет, а просто вырежет из скрипта все пробелы, знаки табуляции и переносы строк.
Как и в случае использования утилиты yui-compressor, команда следующего вида выведет содержимое сжатого файла в консоль (stdout):
gcconline jquery.js
Код утилиты gcconline может свободно использоваться, улучшаться и модифицироваться под собственные нужды. Также утилиту можно встроить в различные веб-проекты для прозрачного сжатия javascript-кода при изменении исходных скриптов. Кроме того, с минимальными модификациями, скрипт может использоваться в любой операционной системе.