Se alguém conseguir da um help. Por um tempo usei o grunt agora migrando para o gulp me acostumando com o fluxo async do Gulp.
A dúvida é a seguinte.
Tenho as seguintes task's
A = Limpa o diretório dist e copia os arquivos da pasta src para dist.
B = Concatena e minifica os meus scripts e css.
C = Otimiza as imagens.
D = Task que apaga os arquivos da pasta DIST que são desnecessários, não quero deixar arquivos .js e .css que não estejam minificados na pasta.
Para isso criei um array qual passo o caminho dos itens que quero deletar e as exceções.
var filesDelete = [ './dist/js//*.js' ,'./dist/css//.css' ,'!./dist/js/**/.min.js' ,'!./dist/css/*/.min.css' ];
A task D ficam assim:
gulp.task('d', function(){ return gulp.src(filesDelete) .pipe(clean()); });
Chamando direto no gulp , (gulp d) funciona perfeitamente e apaga todos os arquivos JS e CSS que não tenham a extensão .min
Na minha Task default tenho algo assim:
gulp.task('default', ['a'], function(){
gulp.start('b', 'c');
});
A minha task default depende da A, para depois realizar as tasks B e C.
Se eu jogo a task D no fluxo
gulp.start('b', 'c', 'd');
O Gulp me explode alguns erros, falando que não existe os arquivos, por executar as task de modo async.
Olhei a documentação do gulp e não achei nada Existe uma maneira de executar essa task D. Apenas quando as outras já estiverem prontas?