Saltar al contenido

¿Cómo Crear Tareas Múltiples con Grunt?

5 junio, 2019

Las tareas múltiples son lo que la mayoría de los complementos proporcionan, usted proporciona un espacio de nombres y un código para ejecutar esas tareas. ¿Cómo Crear Tareas Múltiples con Grunt?

Grunt.js proporciona dos tipos de tareas: tareas básicas y tareas múltiples. Las tareas básicas son poco más que una función de javascript con nombre que puede ejecutar desde la línea de comandos.

Luego el usuario crea instancias de esas tareas colocando las opciones debajo de un objeto de configuración del mismo nombre.

¿Cómo Crear Tareas Múltiples con Grunt?

Cuando se ejecuta una tarea múltiple, Grunt busca una propiedad con el mismo nombre en la configuración. Las tareas múltiples pueden tener configuraciones múltiples, definidas usando “objetivos” arbitrariamente nombrados.

Al especificar una tarea y un objetivo como grunt concat: foo o grunt concat: bar, solo se procesará la configuración del objetivo especificado, mientras que la ejecución de grunt concat se repetirá en todos los objetivos.

Procesándolos a su vez. Tenga en cuenta que si una tarea ha sido renombrada con grunt.task.renameTask, Grunt buscará una propiedad con el nuevo nombre de tarea en el objeto de configuración.

La mayoría de las tareas de contribución, incluidas la tarea jshint del complemento grunt-contrib-jshint y la tarea concat del complemento grunt-contrib-concat, son tareas múltiples.

grunt.registerMultiTask (taskName, [description,] taskFunction)

Dada la configuración especificada, esta multitarea de ejemplo registraría foo: 1,2,3 si Grunt se ejecutó a través de grunt log: foo.

O registraría bar: hello world si Grunt se ejecutará a través de grunt log: bar. Sin embargo, si Grunt se ejecutará como registro de grunt, se registraría foo: 1,2,3 y luego bar: hello world then baz: false.

grunt.initConfig ({
Iniciar sesión: {
foo: [1, 2, 3],
bar: 'hola mundo',
baz: falso
}
});

grunt.registerMultiTask ('log', 'Log stuff.', function () {
grunt.log.writeln (this.target + ':' + this.data);
});

Después de Inicializar

Grunt proporciona una lista normalizada de archivos src / destination en este archivo. Copiamos la matriz this.files en un archivo de variable local usando slice, ya que vamos a modificar la matriz.

Queremos procesar cada archivo, pero no podemos usar un bucle normal ya que nuestro procesamiento es asíncrono. En su lugar, definimos la función de proceso que, si la matriz de archivos está vacía.

Le dice a grunt que hemos terminado y regresa. De lo contrario, lee la primera fuente, la ejecuta a través de zlib para comprimirla y la vuelve a escribir. Después de comprimir el archivo, repite el proceso de llamada de compreción.

Una cosa a tener en cuenta es que, en lugar de usar la función de archivo de nodo, usamos funciones como grunt.file.write.

En ocasiones, proporcionan una buena cantidad de azúcar encima del nodo, pero también permiten que grunt implemente ciertas funciones.

Como no escribir archivos si grunt se ejecuta con –no-write. Si comienza a escribir su propia tarea y especialmente si desea redistribuirla, familiarícese con los documentos de la API de Grunt y use los ayudantes que le brinda.