2015-12-26 62 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')); 
}); 
相關問題