Grunt: Como listar tareas disponibles

Author Top
enzo

En la entrada de blog Introducción a Grunt explique como podíamos utilizar grunt para automatizar tareas, sin embargo la única forma de detectar las tareas disponibles es revisar el archivo Gruntfile.js o ejecutar las tareas, pero es muy probable que ejecutar tareas que no sabemos que hacer no sea una buena idea.

Afortunadamente existe un plugin para Grunt que permite revisar las tareas disponibles, este plugin es grunt-available-tasks veamos como lo podemos implementar en nuestro sistema de tareas comunes en en nuestro proyecto.

1. Instalar plugin.

Lo primero que debemos hacer es instalar el plugin available-tasks ejecutando el siguiente comando suponiendo que ya tenemos npm instalado. 

$ npm install grunt-available-tasks --save-dev

El anterior comando agregara las respectivas dependencias es nuestro archivo package.json con una entrada similar a la siguiente.?

"grunt-available-tasks":"0.5.0"

2. Agregar tarea a grunt.

Teniendo como base el archivo Gruntfile.js de la entrada  Introducción a Grunt agregamos la configuración necesaria para agregar la tarea de listar las tareas disponibles como se muestra a continuación. 

availabletasks: {
  tasks: {
    options: {
      filter: 'exclude',
      tasks: ['availabletasks', 'tasks']
    }
  }               
},

La acción anterior registra la configuración para el plugin available-tasks indicando que deseamos excluir del listado las tareas availabletasks y tasks este ultimo es un alias que configuraremos mas tarde.

3. Cargar el plugin.

Para poder ejecutar la tareas debemos cargar el plugin con la siguiente configuración casi al final del archivo Gruntfile.js como vemos en el siguiente listado

grunt.loadNpmTasks('grunt-available-tasks');

4. Registrar Tarea

Para finalizar vamos a registrar la tarea usando un alias para facilitar su ejecución, para lo cual solo debemos agregar el siguiente código al final del archivo de configuración.

grunt.registerTask('tasks', ['availabletasks']);

5. Obtener tareas disponibles.

Llegado a este punto ya podríamos obtener las tareas disponibles y solo deberíamos ejecutar el siguiente comando.

$ grunt tasks

El anterior comando obtendría una salida similar a la siguiente imagen.

La anterior imagen fue ejecutado dentro del proyecto Community Bookstore puedes ver el archivo completo de configuración de Grunt en https://github.com/enzolutions/community-bookstore/blob/master/frontend/Gruntfile.js.

Espero que haya sido de su agrado.