GruntJS

Oh wow! Esa fue mi reacción la primera vez que vi como funcionaba Grunt.

La parte de "Task Runner" se refiere simplemente a automatización de tareas, y por tareas me refiero a procesos como: concatenar archivos, minificar JavaScript o CSS, optimizar imagenes o usar un lint en nuestro JavaScript. Cada una de estas tareas es manejada por un plugin de Grunt.

Como usar Grunt

La documentación es bastante completa y nos guía desde como instalarlo hasta como usar los plugins.

  • Instalar Node.js y nmp (Node.js package manager)
  • Instalar Grunt CLI globalmente con npm install -g grunt-cli (puede ser que necesitemos sudo)
  • Dos archivos son requeridos en nuestro proyecto, package.json & Gruntfile.js. Los cuales incluimos en el root del proyecto, o en root de nuestro theme, si estamos trabajando con Drupal.

Una vez que tenemos lo básico, podemos instalar plugins. Lo más sencillo es corriendo desde la terminal:

$ npm install [plugin] --save-dev

Donde [plugin] es el nombre del plugin que queremos instalar, el argumento --save-dev le dice a npm que instale localmente (solo para el proyecto en cuestión), y que agregue la referencia al plugin en la sección de devDependencies del archivo package.json Opciones y como configurar cada plugin se detalla en la documentación.

Despues de configurar las tareas, podemos correr Grunt, con:

$ grunt

Esto correra las tareas que tengamos en default; si tenemos un alias, que el nombre sea build y que corra tareas para cuando estamos listos para ir a produccion, podemos hacer

$ grunt build

Más información

Algunos recursos a parte de la documentación,

Tags Tools, Theming