viernes, 3 de noviembre de 2017

[PrestaShop][Mejora] Cambiar librería de minificar JS

Hola a todos,

Después de estar depurando lentitud en alguna de nuestras web, hacemos un profiler y nos da esto:

Más de 1 segundo en comprimir los JS!!

Según el propio autor de la librería (https://github.com/rgrove/jsmin-php) que utiliza PrestaShop, dice: "No deberías utilizar ninguna versión de JSMin". El proyecto lleva sin actualizarse desde hace más de 6 años.

Incluso nos recomienda otra, que es la que hemos probado, JShrink
https://github.com/tedivm/JShrink

Para poder sustituirla, podemos hacer lo siguiente.
Nos bajamos este fichero a nuestra carpeta /classes/, teniendo el fichero como /classes/Minifier.php
https://github.com/tedivm/JShrink/blob/master/src/JShrink/Minifier.php

En la clase /classes/Media.php cambiamos la función packJS por algo similar a lo de esta captura:

Posteriormente, en nuestra base de datos, agregamos el valor "PS_JS_MINIFIER", usando esto para poder determinar que librería de minify queremos usar.

Y así pasamos, del segundo, a cerca de 200ms, por hacer lo mismo:



Para recordatorio propio de lo que he hecho:
https://github.com/danidomen/materialescolar/commit/fa630fb28e001359365bfbf7a6f768ed9da9e4f7

UPDATE!!: OJO, contrariamente a mi pensamiento, la variable en la función de "minify" no es por referencia, con lo que la línea 178 de la captura, debería quedar así:
case 'jshrink': $js_content = Minifier::minify($js_content); break;

No hay comentarios:

Publicar un comentario