a-anosov-parc / gcconline

Google Closure Compiler utility

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Ни для кого не секрет, что одним из важных шагов при оптимизации 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-кода при изменении исходных скриптов. Кроме того, с минимальными модификациями, скрипт может использоваться в любой операционной системе.

About

Google Closure Compiler utility