Инструменты для объединения файлов JS и CSS

Недавно я начал работать с большой базой кода со многими (15-20) js-запросами на страницу. Мне поручено оптимизировать и повысить производительность этих сайтов.

Я использовал такие инструменты, как PageSpeed ​​от Google и YSlow от Yahoo, в сочетании с тестами WebPageTest.org, чтобы определить базовую скорость сайта и область улучшения. Мне любопытно, есть ли какие-то стандартные или передовые решения для объединения и минимизации файлов JS и CSS.

Я смотрел: http://www.youtube.com/watch?v=30_AIEhar-I и первые 20 минут были действительно хороши для того, чтобы забить mod_pagespeed как хорошую цель.

В настоящее время я рассматриваю mod_pagespeed с компрессором YUI и, возможно, генератором спрайтов вдобавок ко всему этому.

Какие хорошие инструменты я, возможно, пропустил, или вещи, о которых мне следует беспокоиться в моей текущей сборке?

Изменить: следует отметить, что это одна страница из многих (возможно, сотен), и сайт получает новую сборку каждые две недели, поэтому возможность автоматизировать эту конкатенацию и минификацию является обязательной, я не могу просто сделать это один раз и вызвать это хорошо.

Редактировать 30.07.2012 - я потратил некоторое время на просмотр различных инструментов, трудно сказать, какие из них лучше, но в настоящее время не так много людей используют скорость mod_page.

Замыкание наверняка более широко используется, но и этого не хватает. Кажется, оптимальный способ сделать это — просто использовать плагин с YUI.

Есть и другие места, где предлагается использовать Packer, но похоже, что многие считают, что файлы меньшего размера исключаются из-за необходимость распаковывать их на клиентской машине. Этот поток переполнения стека response хорошо читается об этих типах инструментов.



person J V    schedule 11.07.2012    source источник
comment
Почему вы говорите, что Закрытия не хватает?   -  person Dagg Nabbit    schedule 16.08.2012


Ответы (1)


Google Closure Compiler очень удобен для объединения и минимизации JavaScript. У него есть дополнительный бонус в виде линтинга вашего кода при компиляции, он удалит мертвый код, а также может выполнять проверку типов во время компиляции, если вы включаете подсказки типов в docblocks.

В некоторых случаях функция удаления мертвого кода дает Closure огромное преимущество перед другими минификаторами... например, подумайте о случаях, когда вы включаете библиотеку, но используете только около 10% функциональности. Остальные 90% можно удалить, если сжать библиотеку вместе с остальной частью проекта.

Что касается CSS, компрессор YUI, вероятно, лучший выбор, если вы хотите что-то необычное. В противном случае вы могли бы просто объединить файлы вместе, используя cat, и получить несколько дополнительных байтов из-за пробелов.

person Dagg Nabbit    schedule 11.07.2012
comment
Одна из причин, по которой я выбрал YUI, заключалась в том, что документация была очень хорошей и гибкой. Есть ли способ автоматизировать компилятор закрытия? Я начал с просмотра одной страницы на сайте, но, к сожалению, сотни страниц с атрибутами нужно будет урезать таким образом, поэтому автоматизация просто необходима. - person J V; 12.07.2012
comment
Closure — это исполняемый файл Java (jar), который запускается в командной строке, поэтому для его автоматизации достаточно вызвать его из сценария сборки или аналогичного. Их онлайн-документация довольно хороша, чего и следовало ожидать от Google. Взгляните на расширенную функцию оптимизации; вот где все становится интересным. - person Dagg Nabbit; 12.07.2012
comment
Интересно, я собираюсь исследовать это немного больше. Спасибо за направление! - person J V; 13.07.2012