Jaki jest najlepszy sposób, aby zminimalizować zagregowany javascript Drupala (automatycznie)?

10

Właśnie uruchomiłem Google Pagespeed w mojej nowo utworzonej witrynie Drupal 6, i raportuje:

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.

Powyższy plik został wygenerowany przy użyciu domyślnej metody agregacji JavaScript drupala, ale najwyraźniej może on być o 18% mniejszy (co jest dużą zaletą dla tej witryny). Jakie podejście jest uważane za najlepsze, jeśli chodzi o zminimalizowanie JavaScript na stronie drupal bez zerwania istniejącego kodu?

wiifm
źródło
Nie sądzę, że jest to tak naprawdę pytanie specyficzne dla Drupala, może odnosić się do każdego zmniejszenia JavaScript i dlatego lepiej byłoby zadawać je na StackOverflow.
Odszyfruj
4
Częścią specyficzną dla drupala byłoby to, że każde rozwiązanie musiałoby zostać zintegrowane z drupal i zastąpić podstawowe pliki agregacji JS zminimalizowanymi wersjami. Zmieniono tytuł, aby, mam nadzieję, uczynić to jaśniejszym
wiifm

Odpowiedzi:

4

Możesz użyć do tego modułu JavaScript Aggregator lub zainstalować PageSpeed (moduł Apache, a nie rozszerzenie Firebug), jeśli używasz Apache i możesz zainstalować rozszerzenia (np. Nie współużytkowany webhost), w połączeniu z własną agregacją Drupal, z dodatkową korzyścią, że PageSpeed może również zminimalizować CSS.

dzikie piki
źródło
Używając nginx jako serwera WWW, nie jestem zbyt pewien, czy Google Pagespeed jeszcze się z tym integruje
wiifm
Ach, w takim razie lepiej jest z modułem niż PageSpeed ​​w tym przypadku.
wildpeaks
6

Stworzyłem nowy moduł, aby rozwiązać wiele problemów związanych z agregacją i mam nadzieję, że dostanę dużą jego część do D8; i tak, to moduł D6: http://drupal.org/project/advagg . Używa jsmin + lib do kompresji JS i lib CSSTidy do kompresji CSS. Główną zaletą tego jest to, że plik zbiorczy css / js nie zmienia nazw, chyba że jest to konieczne; pliki te mają także roczną pamięć podręczną i generują pamięć obrazów, więc 404s do twojego pliku CSS powinno być przeszłością.

Aktualizacja: AdvAgg 7.x jest opracowywany i zawiera minimalizację JS jako opcjonalnego podmodułu. Inne opcje D7:
http://drupal.org/project/speedy
http://drupal.org/project/uglifyjs

mikeytown2
źródło
1
Z opisu na stronie wyczuwam subtelną wskazówkę, że powinienem zainstalować ten moduł: D Dobra robota, wypróbuję to.
wildpeaks
1
Tak, wypróbowałem ten moduł dla strony, jedynym problemem było zminimalizowanie CSS w taki sposób, że strona się zepsuła. Nie byłem pewien, czy wynika to z silnika minimalizacji CSS, czy z jakiegoś źle zakodowanego CSS;) W każdym razie byłem dopiero po minimalizacji JS, ponieważ JS jest znacznie większy niż CSS. Czy w tym module będzie dostępna opcja wyłączenia minimalizacji CSS?
Dobra
Wystarczy wyłączyć moduł kompresji CSS. Jeśli zastanawiasz się, korzysta z biblioteki CSSTidy.
mikeytown2
@ mikeytown2 Dziękuję bardzo za tak wspaniały moduł. Mam problem z jednym z moich plików CSS, które kiedyś nie ładują się. Pytanie jest tutaj [ drupal.stackexchange.com/questions/128649/... i link do strony [ living.md/]i błąkał się, jeśli używam advgg czy muszę włączyć drupal Agreguj i kompresuj pliki CSS i Agreguj pliki JavaScript. poniżej wydajności. Nie mogę znaleźć żadnej dokumentacji modułu ani linku do podstawowych ustawień?
Yama,
2

Możesz użyć modułu Minify , aby zrobić to samo. Moduł Minify zminimalizuj JavaScript za pomocą kompilatora Google. Działa również z „Agreguj pliki JavaScript”, dzięki czemu możesz również skorzystać z łączenia wielu plików JavaScript, co jest domyślną opcją w Drupal 7.

Moduł Minify również minimalizuje HTML.

Atul Bhosale
źródło