Gulp:如何监视多个文件并仅为更改的文件执行任务?

Gulp:如何监视多个文件并仅为更改的文件执行任务?,gulp,gulp-watch,Gulp,Gulp Watch,我想做这件事: 我有一个包含许多js文件的文件夹。当我保存其中一个文件时,我想将缩小的文件保存在其他文件夹中 部分原因是我的脚本监视许多文件,当我更改其中一个文件时,所有文件都会复制并缩小到目标文件夹 我最近发现gulp.run不再使用了 如果有人能帮助我,我将非常感激 我试着这样做: var gulp = require('gulp'); var jshint = require('gulp-jshint'); var uglify = require('gulp-uglify'); var

我想做这件事:

我有一个包含许多js文件的文件夹。当我保存其中一个文件时,我想将缩小的文件保存在其他文件夹中

部分原因是我的脚本监视许多文件,当我更改其中一个文件时,所有文件都会复制并缩小到目标文件夹

我最近发现gulp.run不再使用了

如果有人能帮助我,我将非常感激

我试着这样做:

var gulp = require('gulp');
var jshint = require('gulp-jshint');
var uglify = require('gulp-uglify');
var watch = require('gulp-watch');

var files_dev = "./_sys/js/private/*.js";
var path_prod = "./_sys/js/public/";

gulp.task('dist-file', function(file) {
    gulp.src(file)
    .pipe(uglify())
    .pipe(gulp.dest(path_prod));
});

gulp.task('default', function() {
    gulp.watch(files_dev).on("change", function(file) {
        gulp.run('dist-file');
    });

dist file不需要是一个gulp任务,您可以将它作为一个函数,您可以将文件或glob传递给处理。另外,手表现在是“大口喝”的一部分,所以你不需要“大口喝”手表

var jshint = require('gulp-jshint');
var uglify = require('gulp-uglify');

var files_dev = "./_sys/js/private/*.js";
var path_prod = "./_sys/js/public/";

function uglifyFile (file) {
    gulp.src([file])
        .pipe(uglify())
        .pipe(gulp.dest(path_prod));
}

gulp.task('watch-test', function() {
    gulp.watch(files_dev).on("change", function (event) {
        uglifyFile(event.path);
    });
});

gulp.watch回调函数接收一个事件参数,该参数具有指向触发事件的文件的path属性。如果你发布你的代码会很有帮助。很抱歉没有发布我的代码。正如您所看到的,在任务默认情况下,我需要将文件作为任务dist文件的参数发送。