1
resposta

npm run gulp não executa o copy

Olá, estou com o seguinte problema: ao executar npm run gulp recebo a seguinte mensagem

[09:23:30] Using gulpfile ~\Desktop\Personal\Gulp - alura\projeto\gulpfile.js
[09:23:30] Starting 'clean'...
[09:23:30] Finished 'clean' after 41 ms
[09:23:30] Starting 'copy'...
[09:23:30] Finished 'copy' after 115 ms
[09:23:30] Starting 'default'...
[09:23:30] Starting 'clean'...
[09:23:30] Starting 'usemin'...
[09:23:30] Finished 'default' after 81 ms
events.js:183
      throw er; // Unhandled 'error' event
      ^

Error: ENOENT: no such file or directory, open 'C:\Users\lafonsoa\Desktop\Personal\Gulp - alura\projeto\dist\index.html'
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! projeto@1.0.0 gulp: `gulp "default"`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the projeto@1.0.0 gulp script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\lafonsoa\AppData\Roaming\npm-cache\_logs\2018-04-20T12_23_30_452Z-debug.log

Percebi que ao executar o npm run gulp, os arquivos .html não são copiados e, assim, os arquivos .min não são gerados.

Rodei as tasks individualmente, executando primeiro a copy, seguida da build-img e usemin, e o resultado foi igual ao da aula: os arquivos .min.css e .min.js foram criados e todos os arquivos foram copiados.

Segue o código do meu gulpfile:

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

//rodar essa task
gulp.task('default', ['copy'], function(){ //executa primeiro o copy, dps executa build-img e usemin assincronamente
    gulp.start('build-img', 'usemin');
})

//limpa a pasta dist antes de realizar a cópia da pasta src
gulp.task('clean', function(){
    return gulp.src('dist').pipe(clean());
});

//copia as pasta src para  dist, assim a otimização roda em cima da cópia das imagens originais
gulp.task('copy', ['clean'], function(){
    return gulp.src('src/**/*').pipe(gulp.dest('dist'));
});

//otimiza sa imagens
gulp.task('build-img', ['copy'], function(){
    return gulp.src('dist/img/**/*').pipe(imagemin()).pipe(gulp.dest('dist/img'));
});

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

Fala Luiz, tudo bom?

Dei uma procurada não achei como resolver seu problema, quando fiz o teste aqui rodou. Você poderia tentar usar um plugin do gulp para copiar e ver se rola: https://www.npmjs.com/package/gulp-copy