Каков наилучший способ минимизировать агрегированный JavaScript-код drupal (автоматически)?

10

Просто запустите Google pageSpeed на моем недавно созданном сайте drupal 6, и он сообщает:

Minifying the following JavaScript resources could reduce their size by 15.6KiB (12% reduction).

    Minifying http://[sites]/sites/default/files/js/js_9f19b87ffb72ca233ea7e45dda2f20f9.js could save 15.3KiB (18% reduction). See optimized version or Save as.

Приведенный выше файл был сгенерирован с помощью стандартного метода JavaScript-агрегата drupal, но, очевидно, он может быть на 18% меньше (что очень важно для этого сайта). Какой подход считается лучшим, когда дело доходит до минимизации JavaScript на сайте drupal без нарушения существующего кода?

WIIFM
источник
Я не думаю, что это действительно конкретный вопрос для Drupal, он может относиться к любому минимизации JavaScript и поэтому его лучше задать в StackOverflow.
Расшифровка
4
Специфическая часть drupal заключается в том, что любое решение должно будет интегрироваться с drupal и заменять основные файлы агрегации JS минимизированными версиями. Изменено название, чтобы, надеюсь, сделать это более понятным
wiifm

Ответы:

4

Вы можете использовать модуль Javascript Aggregator для этого или установить PageSpeed (модуль Apache, а не расширение Firebug), если вы используете Apache и можете устанавливать расширения (например, не общий веб-хост) в сочетании с собственной агрегацией Drupal, с дополнительным преимуществом PageSpeed также может минимизировать CSS.

wildpeaks
источник
Используя nginx в качестве веб-сервера, не очень уверен, что Google Pagespeed интегрируется с этим только сейчас
wiifm
Ах, действительно, в этом случае вам лучше использовать модуль, чем PageSpeed.
Уайлдпикс
6

Я создал новый модуль для решения многих проблем агрегации, и я надеюсь получить его в D8; и да, это модуль D6: http://drupal.org/project/advagg . Использует jsmin + lib для сжатия JS и CSSTidy lib для сжатия CSS. Основное преимущество этого - агрегатный файл css / js не меняет имена без необходимости; Эти файлы также имеют срок действия кэша 1 год и генерируют кэш изображений, так что 404-ый файл CSS должен быть в прошлом.

Обновление: AdvAgg 7.x разрабатывается и поставляется с минификацией JS в качестве дополнительного подмодуля. Другие варианты D7:
http://drupal.org/project/speedy
http://drupal.org/project/uglifyjs

mikeytown2
источник
1
Из описания на странице, я чувствую тонкий намек, что я должен установить этот модуль: D Хорошая работа, я попробую это.
wildpeaks
1
Да, я попробовал этот модуль для сайта, единственная проблема заключалась в том, что он минимизировал CSS таким образом, что сайт сломался. Я не был уверен, связано ли это с механизмом минимизации CSS или каким-то плохо закодированным CSS;) В любом случае, я был только после минимизации JS, поскольку JS значительно больше, чем CSS. Будет ли в этом модуле опция отключения минимизации CSS? Хорошая работа Кстати
wiifm
Просто отключите модуль сжатия CSS. Он использует библиотеку CSSTidy, если вам интересно.
mikeytown2
@ mikeytown2 Большое спасибо за такой замечательный модуль. У меня есть проблема с одним из моих веб-сайтов. CSS-файлы иногда не загружаются. Вопрос здесь [ drupal.stackexchange.com/questions/128649/… и ссылка на сайт [ living.md/]i блуждает, если я использую advgg, нужно ли мне включить drupal Объединять и сжимать файлы CSS и Объединять файлы JavaScript. под производительность. Я не могу найти какую-либо документацию для модуля, какую-либо ссылку на некоторые основные настройки?
Яма
2

Вы можете использовать модуль Minify, чтобы сделать то же самое. Модуль Minify минимизирует JavaScript с помощью компилятора Google. Он также работает с «Совокупными файлами JavaScript», поэтому вы также можете получить преимущество объединения нескольких файлов JavaScript, что является опцией по умолчанию в Drupal 7.

Модуль Minify также минимизирует HTML.

Атул Бхосале
источник