Cuando se trata de minificar archivos JavaScript hay variedad de software para elegir, pero que tengan un buen rendimiento, JSMin se lleva la delantera por estar disponible como una extensión de PHP. Actualmente es compatible con PHP 7.*, y la compilación es bastante sencilla. La única recomendación es que hay que hacerlo usando las mismas versiones de PHP en caso de copiar la extensión de un sistema a otro.
Estos pasos se realizaron con éxito con Debian Bullseye y PHP 7.4.
Compilación de la extensión PHP
Los requisitos para la compilación de extensiones PHP son instalar:
sudo apt install php-dev
Clonamos el repositorio y compilamos con:
git clone --recursive --depth=1 https://github.com/sqmk/pecl-jsmin.git
cd pecl-jsmin
phpize
./configure
make
Instalación en el mismo sistema
Si deseamos usar la extensión en el mismo sistema donde la compilamos usamos el siguiente comando:
sudo make install
Con esto se copia la extensión al directorio de las extensiones de PHP, por lo que debemos tener instalado PHP previamente.
Después vamos al directorio:
cd /etc/php/7.*/mods-available/
Ahí creamos un archivo que lleve por nombre jsmin.ini:
sudo nano jsmin.ini
El contenido que tendrá el archivo es el siguiente:
extension=jsmin.so
Instalación en un sistema diferente
Si deseamos instalar la extensión en otro sistema con la misma versión de PHP, verificamos de nuevo por si las dudas con el comando php -v
.
Copiamos el archivo que se generó pecl-jsmin/modules/jsmin.so hacia la carpeta donde se encuentran las extensiones de PHP en el sistema destino.
Para saber la ruta de la carpeta en el sistema destino ejecutamos el comando:
php -i | grep '^extension_dir' | sed -e 's/extension_dir => .* => //'
El archivo en el sistema final debe quedar con el siguiente formato (varía según la versión de PHP):
/usr/lib/php/20180731/jsmin.so
Después creamos un archivo con el nombre jsmin.ini en el directorio de configuraciones de PHP:
sudo nano /etc/php/7.*/mods-available/jsmin.ini
Le agregamos el siguiente contenido y lo guardamos:
extension=jsmin.so
Activación de la extensión
Para activar JSMin usamos el comando:
sudo phpenmod jsmin
Si todo está bien no deberá aparecer ningún mensaje. Para comprobar que la extensión se encuentre cargada ejecutamos:
php -m
Ahí debe aparecer una lista con todas las extensiones cargadas en la sección "[PHP Modules]".
Para terminar, reiniciamos PHP.
Nginx, PHP y PHP-FPM, cambiando 7.3 por la versión actual que estemos usando (ejemplo 7.2 y 7.4):
sudo systemctl restart php7.3-fpm
Apache y PHP:
sudo systemctl restart apache2
PHP CLI:
No es necesario reiniciar.
Repositorio: sqnk/pecl-jsmin.