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

Task usemin funciona sozinha mas não funciona na task default.

Por que essa tarefa funciona sozinha:

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

E assim não funciona:

var gulp = require('gulp'),
    imagemin = require('gulp-imagemin'),
    clean = require('gulp-clean'),
    concat = require('gulp-concat'),
    htmlReplace = require('gulp-html-replace'),
    uglify = require('gulp-uglify'),
    usemin = require('gulp-usemin'),
    cssmin = require('gulp-cssmin');

gulp.task('default', ['copy'], function() {
    gulp.start('img', 'usemin');
});

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

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

gulp.task('img', function() {
    return gulp.src('src/img/**/*')
        .pipe(imagemin())
        .pipe(gulp.dest('dist/img'));
});

//Essa task substitui as concat e html
gulp.task('usemin', function() {
    return gulp.src('dist/**/*.html')
        .pipe(usemin({
            js: [uglify],
            css: [cssmin]
        }))
        .pipe(gulp.dest('dist'));
});

Alguém tem alguma explicação pois eu já perdi quase uma noite tentando descobrir o motivo e não consegui?

3 respostas

Fala hugo tudo bom? algum erro é apresentado no console do node?

solução!

Problema está na tarefa copy. É necessário retornar o stream, caso o contrário o usemin pode começar a rodar antes do copy ter acabado.

Com a correção fica assim:

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

Mário não havia nenhum erro no console. :)

Hiroshi é isso mesmo. Perdi quase uma noite rsrsrs Mas vale o aprendizado. Valeu pela explicação. :)