¿Cuál es la mejor manera de minificar javascript agregado de drupal (automáticamente)?


10

Acabo de ejecutar Google Pagespeed en mi sitio drupal 6 recién creado, e informa:

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.

El archivo anterior se generó a través del método de agregación de JavaScript predeterminado de drupal, pero aparentemente podría ser un 18% más pequeño (lo cual es un gran problema para este sitio). ¿Qué enfoque se considera el mejor cuando se trata de minimizar JavaScript en un sitio drupal sin romper ningún código existente?


No creo que esta sea realmente una pregunta específica de Drupal, podría relacionarse con cualquier minificación de JavaScript y, por lo tanto, sería mejor preguntar en StackOverflow.
Descifrar el

44
La parte específica de drupal sería que cualquier solución necesitaría integrarse con drupal y reemplazar los archivos de agregación JS centrales con versiones minimizadas. Se cambió el título para que esto sea más claro
Wiifm

Respuestas:


4

Puede usar el módulo Agregador de Javascript para eso o instalar PageSpeed (el módulo Apache, no la extensión Firebug) si usa Apache y puede instalar extensiones (por ejemplo, no un host web compartido), combinado con la propia agregación de Drupal, con el beneficio adicional de PageSpeed También podría minimizar CSS.


Usando nginx como el servidor web, no estoy muy seguro de si la velocidad de las páginas de Google se integra con eso todavía
wiifm

Ah, de hecho, es mejor con el módulo que PageSpeed ​​en ese caso.
wildpeaks

6

Creé un nuevo módulo para abordar gran parte del problema de agregación y espero obtener una gran parte de él en D8; y sí, es un módulo D6: http://drupal.org/project/advagg . Utiliza jsmin + lib para la compresión de JS y CSSTidy lib para la compresión CSS. La principal ventaja de esto es que el archivo agregado css / js no cambia los nombres a menos que sea necesario; estos archivos también tienen una vida útil de caché de 1 año y tienen generación de caché de imágenes, por lo que los 404 a su archivo CSS deberían ser cosa del pasado.

Actualización: AdvAgg 7.x se está desarrollando y viene con la minificación de JS como un submódulo opcional. Otras opciones D7:
http://drupal.org/project/speedy
http://drupal.org/project/uglifyjs


1
De la descripción en la página, siento una sutil pista de que debo instalar este módulo: D Buen trabajo, lo probaré.
wildpeaks

1
Sí, probé este módulo para el sitio, el único problema fue que minimizó el CSS de tal manera que el sitio se rompió. No estaba seguro de si esto se debe al motor de minificación CSS o a un CSS mal codificado;) En cualquier caso, solo estaba después de la minificación JS, ya que el JS es sustancialmente más grande que el CSS. ¿Habrá una opción en este módulo para deshabilitar la minificación CSS? Buen trabajo por cierto
wiifm

Simplemente deshabilite el módulo de compresión CSS. Utiliza la biblioteca CSSTidy si te preguntas.
mikeytown2

@ mikeytown2 Muchas gracias por un módulo tan bueno. Tengo algún problema con uno de mis archivos css de sitios web que en algún momento no carga la pregunta aquí [ drupal.stackexchange.com/questions/128649/… y el enlace al sitio web [ living.md/font>i estaba deambulando si uso advgg, necesito habilitarlo drupal Agregue y comprima archivos CSS y Agregue archivos JavaScript. bajo rendimiento. No puedo encontrar ninguna documentación para el módulo, ¿algún enlace a alguna configuración básica?
Yama

2

Puede usar el módulo Minify para hacer lo mismo. Módulo Minify Minify JavaScript usando el compilador de Google. También funciona con "Agregar archivos JavaScript", por lo que también puede aprovechar la combinación de múltiples archivos JavaScript, que es la opción predeterminada en Drupal 7.

El módulo Minify también minimiza HTML.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.