Cómo personalizar las tareas de gruñidos
A veces necesitamos escribir algunas de nuestras propias tareas de gruñidos, aquí hay un ejemplo específico
1. Preparación
1. Cree un nuevo directorio G1
2. Cree un nuevo paquete.json y póngalo en G1
3. Cree un nuevo Gruntfile.js y póngalo en G1
paquete.json
La copia del código es la siguiente:
{
"Nombre": "G1",
"Versión": "0.1.0",
"Autor": "@Snandy",
"Página de inicio": "http://www.g1.com",
"Devdependencias": {
"Grunt": "~ 0.4.0"
}
}
4. Ingrese G1 por CD, instale la instalación del paquete Grunt NPM
Toda la estructura del directorio es la siguiente
Gruntfile.js está temporalmente vacío.
2. Crea la tarea más fácil
Grunt.RegisterTask (TaskName, [Descripción,] TaskFunction)
TaskName Nombre de la tarea, use Grunt + TaskName en la línea de comando
Descripción de la tarea
Implementación de tareas de la función de tarea
Complete el código en Gruntfile.js
La copia del código es la siguiente:
módulo.exports = function (grunt) {
Grunt.RegisterTask ('myTask', 'Una demostración de tareas más simple, imprime diferentes salidas de acuerdo con los parámetros.', función (arg1, arg2) {
if (arguments.length === 0) {
grunt.log.writeLn ('tarea' + this.name + ", no pasan los parámetros");
} else if (arguments.length === 1) {
grunt.log.writeln ('tarea' + this.name + ", hay un parámetro que es" + arg1);
} demás {
grunt.log.writeln ('tarea' + this.name + ", hay dos parámetros:" + arg1 + "," + arg2);
}
});
};
Se ha registrado una tarea "MyTask" para implementar la implementación más simple de diferentes impresiones de acuerdo con los parámetros aprobados. Necesitamos ingresar la línea de comando de acuerdo con los resultados de ejecución.
Ingrese el directorio G1 e ingrese a Grunt Mytask
Entra Grunt Mytask: Snandy
Agregue un colon al nombre de la tarea para aprobar el argumento
Ingrese Grunt Mytask: Snandy: Backus
El intervalo de colon puede pasar múltiples parámetros
3. Crea múltiples tareas a la vez
Grunt.RegisterMultitask (TaskName, [Descripción,] TaskFunction)
Puede ver que los parámetros son los mismos y los nombres de métodos son diferentes. Pero el método de uso es diferente, debe inicializar la configuración primero, gruntfile.js es el siguiente
La copia del código es la siguiente:
módulo.exports = function (grunt) {
grunt.initconfig ({
registro: {
T1: [1, 2, 3],
T2: 'Hola mundo',
T3: Falso
}
});
Grunt.RegisterMultTask ('log', 'Log Stuff.', function () {
grunt.log.writeln (this.target + ':' + this.data);
});
};
Ingrese el directorio G1 y pruebelo por separado
Ingrese Grunt y tres subtareas se ejecutarán a su vez T1, T2, T3
Ingrese el registro Grunt: T1, Grunt Log: T2, Grunt Log: T3 respectivamente
4. Comunicación entre tareas
Se puede llamar a otra tarea dentro de una tarea, como sigue
La copia del código es la siguiente:
módulo.exports = function (grunt) {
Grunt.RegisterTask ('myTask', 'Una demostración de tareas más simple, imprime diferentes salidas de acuerdo con los parámetros.', función (arg1, arg2) {
if (arguments.length === 0) {
grunt.log.writeLn ('tarea' + this.name + ", no pasan los parámetros");
} else if (arguments.length === 1) {
grunt.log.writeln ('tarea' + this.name + ", hay un parámetro que es" + arg1);
} demás {
grunt.log.writeln ('tarea' + this.name + ", hay dos parámetros:" + arg1 + "," + arg2);
}
});
grunt.registerTask ('predeterminado', 'predeterminado', function () {
// llama a Mytask
grunt.task.run ('mytask: param1: param2')
})
};
Ingrese la línea de comando e ingrese gruñido
Llame a múltiples tareas y las pase al método Ejecutar separado por comas, o en forma de matriz
La copia del código es la siguiente:
grunt.registerTask ('predeterminado', 'predeterminado', function () {
grunt.task.run ('mytask1', 'myTask2')
// o
grunt.task.run (['myTask1', 'myTask2'])
})