javascript

Comprime imágenes utilizando TinyPNG y Gulp

Utiliza la API que proporciona TinyPNG para automatizar la compresión de imágenes en tu proyecto

TinyPNG es una herramienta de compresión de imágenes muy fácil y rápida de utilizar y el día de hoy te enseñaré a cómo puedes automatizarla en tu proyecto con ayuda de Gulp.

Conseguir la API key de TinyPNG

Antes que nada necesitamos conseguir la API key de TinyPNG, para eso procedemos a entrar a la Developer API. Ya estando ahí, introducimos la información que nos piden, la cual sería nuestro nombre completo y un correo electrónico donde nos harían llegar la API key una vez terminemos de enviar el formulario.

botón

Estructura de gulpfile

Ahora que tenemos nuestra API key podemos crear nuestro gulpfile, empezando por las dependencias que necesitaremos

const gulp    = require('gulp'),
      tinypng = require('gulp-tinypng')

posteriormente crearemos la tarea que se encargará de hacer el trabajo duro por nosotros

gulp.task('tinypng', () => {
    gulp.src('./origin-route/*.{png,jpg}')
        .pipe(tinypng('your-api-key'))
        .pipe(gulp.dest('./dest-route/'));
})

Dentro de gulp.src() colocaremos la ruta donde se encuentran las imágenes que queremos comprimir, la terminación *.{png,jpg} indica que tomará todos los archivos siempre y cuando tengan extensión png o jpg. En tinypng() debemos introducir la API key que se nos envió a nuestro correo electrónico y por último, en gulp.dest() llevará la ruta donde se guardarán las imágenes ya procesadas. Nuestro archivo debe verse algo así:

const gulp = require('gulp'),
      tinypng = require('gulp-tinypng')
 
gulp.task('tinypng', () => {
    gulp.src('./dev/img/*.{png,jpg}')
        .pipe(tinypng('L7MSsGfFjQoEW8Ddy9TYtKp7grmF5M9k'))
        .pipe(gulp.dest('./public/img/'));
})

Ya sólo nos queda ejecutar nuestra tarea

gulp tinypng
code

Por último, no olvides que tinyPNG sólo permite comprimir 500 imágenes mensuales a usuarios free, por lo que, al menos que adquieras una cuenta premium, es recomendable no abusar y pensar bien las imágenes que realmente necesites comprimir.