Optimizando SVG con Grunt
Archivado en: Grunt SVG
Esta semana hemos estado en el trabajo implementando Grunt para todos nuestros proyectos. No voy a hablar de todas las tareas que hemos implementado para eso y para aquellos a que les suene raro esto de Grunt Felix Ortega ha escrito un artículo con una gran introducción a Grunt.
Grunt-svgmin
Lo primero que vamos a hacer es instalar svgmin desde el terminal.
$ npm install --save-dev grunt-svgminPlugins
Ahora vamos a incluir la tarea en nuestro archivo gruntfile.js
svgmin: {
options: {
plugins: [
]
},
dist: {
files: []
}
},Ahora vamos a configurar los plugins a nuestra tarea. A nuestra disposición tenemos todos los plugins de SVGO, esto ya es configurable por cada uno, la lista de plugins es bastante extensa, a continuación los que yo he implementado.
removeViewBox
Para que no elimine el atributo viewBox.
removeTitle y removeDesc
Para mí estos dos plugins son los más importantes. Si queremos que Google muestre un título y una descripción de nuestro SVG debemos de añadir las etiquetas <title> y <desc> para que lo muestre en los resultados. Con este plugin en false SVGO no eliminará estas dos etiquetas.
removeUselessStrokeAndFill
Para que elimine los stroke y fill que no tengan valor alguno.
cleanupIDs
Para que elimine los IDs que no contengan ningún script o estilo.
removeEditorNSData
Para que elimine los namespaces que se crean al exportar desde Illustrator, Sketch y Inkscape
cleanupNumericValues
Para que elimine las unidades por defecto. Si a los atributos no les asignamos ninguna unidad de medidad SVG tomará la unidad por defecto, la cual es el pixel. Así que no sirve de nada escribir px.
convertColors
Para que convierta los colores en RGB y keywords a su valor hexadecimal,en caso de que el que color se pueda representar con tres valores(por ejemplo #000000 #ffffff) hexadecimales el plugin hará la conversión.
Files
Por último vamos a configurar las rutas donde tiene que coger nuestros archivos y optimizarlos
dist: {
files: [{
expand: true,
cwd: 'images/', //La ruta donde se alojan nuestros archivos
src: ['**/*.svg'], //El * indica que optimize todos los archivos con extensión .svg
dest: 'dist/images', // La carpeta donde guardara nuestros archivos ya optimizados.
ext: '.svg'
}]
}Podéis consultar todo el código en el siguiente Gist en mi cuenta de GitHub
SCALABLE, un libro sobre SVGA lo largo de 15 capítulos, 120 páginas y más de 70 ejemplos vamos a ver todo lo que podemos hacer con SVG. Tu pones el precio, disponible desde 0$ para descargar desde LeanPub(PDF, ePUB y MOBI).