Como personalizar tarefas grunhidas
Às vezes precisamos escrever algumas de nossas próprias tarefas grunhidas, aqui está um exemplo específico
1. Preparação
1. Crie um novo diretório G1
2. Crie um novo package.json e coloque -o em G1
3. Crie um novo Gruntfile.js e coloque -o em G1
package.json
A cópia do código é a seguinte:
{
"Nome": "G1",
"versão": "0.1.0",
"Autor": "@snandy",
"Página inicial": "http://www.g1.com",
"DevDependências": {
"Grunt": "~ 0.4.0"
}
}
4. Digite G1 por CD, instale o pacote Grunt NPM Instale
Toda a estrutura do diretório é a seguinte
Gruntfile.js está temporariamente vazio.
2. Crie a tarefa mais fácil
Grunt.RegisterTask (Nome da tarefa, [Descrição,] TaskFunction)
Nome da tarefa TaskName, use Grunt + TaskName na linha de comando
Descrição da tarefa
Implementação de tarefas da função -tarefa
Preencha o código em Gruntfile.js
A cópia do código é a seguinte:
Module.Exports = function (Grunt) {
Grunt.RegisterTask ('MyTask', 'Uma demonstração de tarefas mais simples, imprime diferentes saídas de acordo com os parâmetros.', Função (Arg1, Arg2) {
if (argumentos.Length === 0) {
Grunt.Log.Writeln ('Task' + this.name + ", nenhum parâmetros passados");
} else if (argumentos.length === 1) {
Grunt.Log.Writeln ('Task' + this.name + ", existe um parâmetro que é" + arg1);
} outro {
Grunt.Log.Writeln ('Task' + this.name + ", existem dois parâmetros:" + arg1 + "," + arg2);
}
});
};
Uma tarefa "MyTask" foi registrada para implementar a implementação mais simples de diferentes impressões de acordo com os parâmetros aprovados. Precisamos inserir a linha de comando de acordo com os resultados em execução.
Digite o diretório G1 e entre no Grunt MyTask
Entre no Grunt MyTask: Snandy
Adicione um cólon ao nome da tarefa para passar o argumento
Entre no Grunt MyTask: Snandy: backus
O intervalo do cólon pode passar vários parâmetros
3. Crie várias tarefas de uma vez
Grunt.RegisterMultiTask (Nome da tarefa, [Descrição,] TaskFunction)
Você pode ver que os parâmetros são iguais e os nomes de métodos são diferentes. Mas o método de uso é diferente, você precisa inicializar primeiro, o GruntFile.js é o seguinte
A cópia do código é a seguinte:
Module.Exports = function (Grunt) {
Grunt.initConfig ({
registro: {
T1: [1, 2, 3],
T2: 'Hello World',
T3: Falso
}
});
Grunt.RegisterMultiTask ('log', 'Log Stuff.', Function () {
Grunt.Log.Writeln (this.target + ':' + this.data);
});
};
Insira o diretório G1 e teste -o separadamente
Entre Grunt e três subtarefas serão executadas por sua vez T1, T2, T3
Digite o Grunt Log: T1, Grunt Log: T2, Grunt Log: T3, respectivamente
4. Comunicação entre tarefas
Outra tarefa pode ser chamada dentro de uma tarefa, como segue
A cópia do código é a seguinte:
Module.Exports = function (Grunt) {
Grunt.RegisterTask ('MyTask', 'Uma demonstração de tarefas mais simples, imprime diferentes saídas de acordo com os parâmetros.', Função (Arg1, Arg2) {
if (argumentos.Length === 0) {
Grunt.Log.Writeln ('Task' + this.name + ", nenhum parâmetros passados");
} else if (argumentos.length === 1) {
Grunt.Log.Writeln ('Task' + this.name + ", existe um parâmetro que é" + arg1);
} outro {
Grunt.Log.Writeln ('Task' + this.name + ", existem dois parâmetros:" + arg1 + "," + arg2);
}
});
Grunt.RegisterTask ('padrão', 'padrão', function () {
// Ligue para o MyTask
Grunt.Task.Run ('MyTask: Param1: Param2')
})
};
Digite a linha de comando e entre no grunhido
Ligue para várias tarefas e passe -as para o método de execução separado por vírgulas ou em forma de matriz
A cópia do código é a seguinte:
Grunt.RegisterTask ('padrão', 'padrão', function () {
Grunt.Task.Run ('MyTask1', 'Mytask2')
// ou
Grunt.task.run (['mytask1', 'mytask2']))
})