Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Deletar arquivos após a otimização pelo usemin

Boa tarde pessoal, estou com a seguinte dúvida. Tenho a task que copia os arquivos para a pasta dist

gulp.task('copy', ['clean'], function() {
    return gulp.src('src/**/*')
        .pipe(gulp.dest('dist'));
});

gulp.task('clean', function() {
    return gulp.src('dist')
        .pipe(clean());
});

Depois disso faço as otimizações nos arquivos css e js com o usemin

gulp.task('usemin', function() {
    gulp.src('src/**/*.html')
        .pipe(usemin({
            'js': [uglify],
            'css': [autoprefixer, cssmin]
            }))
        .pipe(uncache())
        .pipe(gulp.dest('dist'));
});

O problema é que tem arquivos que eu não preciso otimizar, mas preciso que eles sejam copiados juntos para a pasta dist. Aí quando eu faço a cópia, os arquivos que eu otimizei e que viraram um .min são copiados juntos, gostaria de excluir os arquivos que foram otimizados e deixar somente o .min deles, e mantendo a copia dos que não foram otimizados.

4 respostas

Voce quer copiar tudo menos os js e css porque eles vao ser otimizados com o usemin, isso? Basta exclui-los na task copy:

gulp.task('copy', ['clean'], function() {
    return gulp.src(['src/**/*', '!src/**/*.js', '!src/**/*.css'])
        .pipe(gulp.dest('dist'));
});

A exclamacao exclui arquivos de uma lista

Eu tenho 3 js, mas otimizo só 2 pelo usemin, o outro fica "intacto". Desses dois otimizados eu gero o arquivos.min.js dentro da pasta dist/js. Só que eu preciso copiar o arquivo que não foi otimizado junto para a pasta dist/js, aí que vem o problema.

Quando faço a task de copy, ele copia todos os js da pasta, inclusive os dois que já foram otimizados e viraram o arquivo.min.js, e eu queria copiar só o arquivo que não foi otimizado pelo usemin.

solução!

Entao, se voce tiver alguma logica mais clara pra esses arquivos, ajudaria. Entao, por exemplo, os arquivos que nao forem ser renomeados pra min estarem numa pasta diferente. Ai vc consegue referenciar as pastas corretas na hora de copiar / nao copiar.

Senao o unico jeito é ler a pasta gerada, identificar arquivos duplicados (que foram copiados e tem versao min) e apagar eles. Mas acho que vc vai precisar escrever um codigo na mao mesmo pra fazer isso. Nao sei se vale a pena...

Boa sacada essa das pastas, acho que vai ser o jeito. Valeus (: