如何使用Gulp缩小和复制修改过的文件?

如何使用Gulp缩小和复制修改过的文件?,gulp,Gulp,我在/app/JS中有JS文件,希望在修改时将其缩小并复制到/dist/JS/min。我目前在我的gulpfile中有: gulp.task('minifyJs', function () { gulp.src('app/js/*.js') .pipe(uglify().on('error', function (e) { console.log(e); })) .pipe(rename({

我在
/app/JS
中有JS文件,希望在修改时将其缩小并复制到
/dist/JS/min
。我目前在我的
gulpfile
中有:

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()
参数?

您可以使用该方法,以便仅处理已更改的文件

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'));
});