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

Erro no plugin 'gulp-clean'

Olá, estou acompanhando o curso, pois me deparei com o seguinte problema no capítulo 3.

A organização de pastas do meu projeto está desta forma:

http://prntscr.com/aij8q1

gulpfile.js:

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('build-img', 'usemin');
});

gulp.task('copy', ['clean'], function() {

    return gulp.src('src/**/*')
        .pipe(gulp.dest('dist'));
});

gulp.task('clean', function() {

    return gulp.src('dist')
        .pipe(clean());
});

gulp.task('build-img', ['copy'], function() {

    return gulp.src('dist/public/assets/img/**/*')
        .pipe(imagemin())
        .pipe(gulp.dest('dist/public/assets/img'));
});

gulp.task('usemin', function() {

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

Porém quando executo o gulp, retorna o erro:

[12:34:20] Finished 'default' after 87 ms
[12:34:28] 'clean' errored after 8.74 s
[12:34:28] Error in plugin 'gulp-clean'
Unable to delete "caminho-da-pasta/dist" file (ENOTEMPTY: directory not empty, rmdir 'caminho-da-pasta/dist').
[12:34:28] Finished 'usemin' after 8.74 s

Alguém sabe o que pode ser? Obrigado.

5 respostas

Não ficou claro que é um erro do curso ou um erro no seu projeto. É um erro no seu projeto, certo? Digo isso porque até agora zilhões de alunos já concluíram o curso sem qualquer problema.

É bom deixar claro se é um projeto pessoal ou se é o projeto do curso :)

A estrutura do diretório que você passou não ajuda, porque só mostra a pasta SRC que não contém o script do Gulp. Para que alguém possa te ajudar, é necessário postar a estrutura inteira, inclusive a pasta que contém src e o arquivo gulpfile.js.

Outro ponto: algum processo seu, que não faço ideia do que seja, pode estar usando a pasta 'dist'. Se por acaso, o servidor estiver de pé nesta pasta, você não conseguirá apagá-la.

Aqui há algumas dicas... (file manager aberto, git, e outros processos)

https://github.com/gruntjs/grunt-contrib-clean/issues/34

Outro ponto, se você tiver usando Node 5.X que não é LTS, você terá problemas. A versão LTS é 4.0.

No exercício obrigatório do capítulo está assim:

" Você deve utilizar a versão 0.11 ou 4.X.. A versão 5 não é recomendada, porque seu tempo de suporte é menor do que a versão 4. Apenas as versões pares do Node.js possuem suporte de 18 meses. "

Outro ponto, esse erro também aconteceria se você não colocasse o return do stream como mostro no vídeo. Contudo, seu script faz isso. Será que esse é o código fonte de outro script e não do que você está rodando?

solução!

Consegui resolver, na verdade faltou adicionar o diretório public:

gulp.task('usemin', function() {

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

Obrigado.

Excelente Pablo. Aliás, aproveite as outras dicas de problema que dei, pode ser que aconteça em outra situação.

Sucesso e bom estudo!