2015-12-26 25 views
1

我有/app/js中的JS文件,并希望在修改时缩小并将它们复制到/dist/js/min。我现在有这在我的gulpfile如何用Gulp缩小和复制修改过的文件?

gulp.task('minifyJs', function() { 
    gulp.src('app/js/*.js') 
     .pipe(uglify().on('error', function (e) { 
      console.log(e); 
     })) 
     .pipe(rename({ 
         suffix: '.min' 
        })) 
     .pipe(gulp.dest('/dist/js/min')) 
    ; 
}); 

这在默认的任务:

gulp.watch('app/js/*.js', ['lint', 'minifyJs']); 

这里的问题是,每当有一个JS文件被修改,目录中的所有 JS文件得到缩小和复制,这实际上减慢了速度。

我该如何做到这样只有被修改的文件被缩小和复制?例如,是否有办法将修改后的文件的名称传递给任务,并将其用作任务中的参数src()

回答

2

您可以使用gulp-changed,以便只处理已更改的文件。

var changed = require('gulp-changed'); 

gulp.task('minifyJs', function() { 
    gulp.src('app/js/*.js') 
    .pipe(changed('/dist/js/min')) 
    .pipe(uglify().on('error', function (e) { 
     console.log(e); 
    })) 
    .pipe(rename({ 
        suffix: '.min' 
    })) 
    .pipe(gulp.dest('/dist/js/min')); 
}); 
相关问题