Quelle est la meilleure façon de minimiser (automatiquement) le javascript agrégé de drupal?


10

Je viens de lancer Google Pagespeed sur mon site Drupal 6 nouvellement créé, et il rapporte:

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.

Le fichier ci-dessus a été généré via la méthode d'agrégation JavaScript par défaut de drupal, mais il pourrait être 18% plus petit (ce qui est très important pour ce site). Quelle approche est considérée comme la meilleure lorsqu'il s'agit de minimiser JavaScript sur un site Drupal sans casser aucun code existant?


Je ne pense pas que ce soit vraiment une question spécifique à Drupal, cela pourrait concerner toute minification de JavaScript et serait donc mieux posé à StackOverflow.
Déchiffrez

4
La partie spécifique à Drupal serait que toute solution devrait s'intégrer à Drupal et remplacer les fichiers d'agrégation JS de base par des versions minifiées. Changement du titre pour,
je l'

Réponses:


4

Vous pouvez utiliser le module Javascript Aggregator pour cela ou installer PageSpeed (le module Apache, pas l'extension Firebug) si vous utilisez Apache et pouvez installer des extensions (par exemple pas un hébergeur partagé), combinées avec la propre agrégation de Drupal, avec l'avantage supplémentaire que PageSpeed pourrait également réduire CSS.


En utilisant nginx comme serveur Web, vous ne savez pas trop si Google Pagespeed s'intègre à cela pour l'instant
wiifm

Ah en effet, vous êtes mieux avec le module que PageSpeed ​​dans ce cas.
wildpeaks

6

J'ai créé un nouveau module pour résoudre une grande partie du problème d'agrégation et j'espère en obtenir une grande partie dans D8; et oui c'est un module D6: http://drupal.org/project/advagg . Utilise jsmin + lib pour la compression de JS et la lib CSSTidy pour la compression CSS. Le principal avantage de ceci est que le fichier d'agrégation css / js ne change pas de nom à moins qu'il ne le doive; ces fichiers ont également une durée de vie de 1 an dans le cache et une génération de cache d'image, donc 404s dans votre fichier CSS devraient appartenir au passé.

Mise à jour: AdvAgg 7.x est en cours de développement et est livré avec la minification de JS en tant que sous-module optionnel. Autres options D7:
http://drupal.org/project/speedy
http://drupal.org/project/uglifyjs


1
D'après la description de la page, je sens un indice subtil que je devrais installer ce module: D Bon travail, je vais l'essayer.
wildpeaks

1
Oui, j'ai essayé ce module pour le site, le seul problème est qu'il a minifié le CSS de telle manière que le site s'est cassé. Je ne savais pas si cela était dû au moteur de minification CSS ou à un CSS mal codé;) Dans tous les cas, je n'étais qu'après la minification JS, car le JS est considérablement plus grand que le CSS. Y aura-t-il une option dans ce module pour désactiver la minification CSS? Beau travail BTW
wiifm

Désactivez simplement le module de compression CSS. Il utilise la bibliothèque CSSTidy si vous vous posez la question.
mikeytown2

@ mikeytown2 Merci beaucoup pour un si bon module. J'ai un problème avec l' un des fichiers de mes sites quelque temps ne se charge pas question est ici [ drupal.stackexchange.com/questions/128649/... et lien de site Web [ living.md/]i errait si j'utilise advgg dois - je activer drupal Agréger et compresser des fichiers CSS et des fichiers JavaScript agrégés. sous performance. Je ne peux pas trouver de documentation pour le module un lien vers un paramètre de base?
Yama

2

Vous pouvez utiliser le module Minify pour faire de même. Module Minify minimiser le JavaScript à l'aide du compilateur Google. Il fonctionne également avec les «fichiers JavaScript agrégés» afin que vous puissiez également profiter de la combinaison de plusieurs fichiers JavaScript, qui est l'option par défaut dans Drupal 7.

Le module Minify réduit également le HTML.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.