Criando uma tarefa ‘–force’ no Grunt

Às vezes, você pode precisar usar ‘–force’ com o Grunt ao construir ou testar seu aplicativo.
Se você usar esta opção como esta, por exemplo “grunt server –force”, a opção –force será aplicada a todas as tarefas Grunt.

Mas normalmente você gostaria de aplicar a opção ‘–force’ para algumas tarefas grunhidas, mas deixar outras tarefas na sequência sem a opção ‘–force’.

A maneira como faço isso é ’empacotar’ a tarefa que desejo usar ‘–force’ entre duas outras tarefas que definirão a opção ‘–force’ ATIVADA e DESATIVADA.

Aqui está o código:

grunt.registerTask('forceOn', 'turns the --force option ON',
function() {
if ( !grunt.option( 'force' ) ) {
grunt
.config.set('forceStatus', true);
grunt
.option( 'force', true );
}
});

grunt
.registerTask('forceOff', 'turns the --force option Off',
function() {
if ( grunt.config.get('forceStatus') ) {
grunt
.option( 'force', false );
}
});

Você pode então agrupar a tarefa que deseja usar ‘–force’ com estas duas tarefas, assim:

grunt.task.run([
'clean:server',
'replace',
'forceOn', <-- turn the --force ON
'concurrent:server', <-- this task will use the --force option
'forceOff', <-- turn the --force OFF
'connect:livereload', <-- all the remaining tasks won't use --force
'
open',
'
watch'
]);