Comprimir JS y CSS con un script bash

Comprimir JS y CSS, es una de las principales obligaciones que debe realizar cualquier desarrollador o webmaster web que se precie.

Existe una excelente herramienta, que con un sencillo script bash la podremos hacer trabajar, ya sea de manera manual o creando una tarea cron (en este articulo puedes ver como configurar la tarea cron).

Usando el compresor YUI, crearemos un script Bash con el cual podremos comprimir o minimizar archivos JS y CSS desde la consola / terminal (o tarea cron).

Comprimir JS y CSS con un script bash 1

Comenzamos…

 

Comprimir JS y CSS

Descargamos el jar (archivo java) de Yuicompresor:   Descargar-YUI

Ejecútalo.

java -jar /path/to/yuicompressor-2.4.8.jar /path/to/script.js -o /path/to/script.min.js

 

Ahora ejecutamos este script (nos creara un nuevo comando min en «/usr/local/bin/min»).

#!/bin/bash

# min command

YUICOMPRESSOR="/path/to/yuicompressor/yuicompressor-2.4.8.jar"
MINEXT=".min"

if [ "$1" != '' ]; then
  EXT=`echo "$1" | awk -F . '{print $NF}'`
  if [ "$EXT" = 'js' ] || [ "$EXT" = 'css' ]; then
    if [ "$2" = '' ]; then
      NEWEXT="$MINEXT.$EXT"
      MINFILE="${1//.$EXT/$NEWEXT}"
    elif [ "$2" != '' ]; then
      MINFILE="$2"
    fi
    /usr/bin/java -jar $YUICOMPRESSOR $1 -o $MINFILE --charset utf-8 -v
    USR=$( ls -l $1 | awk '{ print $3 }' )
    GRP=$( ls -l $1 | awk '{ print $4 }' )
    chown $USR:$GRP $MINFILE
  fi
elif [ "$1" = 'help' ] || [ "$1" = '' ]; then
  echo "min 0.1 beta"
  echo "description: uses the YUI Compressor to compress (minify) js and css files."
  echo ""
  echo "usage:"
  echo "sudo min <uncompressed filename> <compressed filename>"
  echo "sudo min <uncompressed filename>"
  echo "example: to minify the file script.js just run the command 'sudo min script.js'"
  echo "filename of <uncompressed filename> must end in \".js\" or \".css\""
  echo "if <compressed filename> is not specified then \".min\" will be placed before the file extension"
  echo ""
fi

# eof

Como te comente te antes, se a creado un nuevo archivo min, en «/usr/local/bin/min».

Lo hacemos ejecutable.

sudo chmod +x /usr/local/bin/min

Comprimir JS y CSS con un script bash 2

La ejecución es tan simple como:

sudo min ejem.js
sudo min ejem2.js
sudo min ejem.css
sudo min ejem2.css

Y con esto ya lo tenemos listo para trabajar.

Mi recomendación es que crees un archivo *.sh, y le colocas todos los archivos a ejecutar.

 

Agregar comentario