2015-10-24 2 views
1

Я хочу сделать это:Gulp: как смотреть несколько файлов и выполнять задачу только для файлов изменений?

У меня есть папка со многими файлами 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'); 
    }); 
+0

Функция обратного вызова gulp.watch получает параметр события с свойством path, указывающим на файл, который вызвал событие. Было бы полезно, если бы вы разместили свой код. –

+0

жаль, что не поставил мой код. Как вы могли видеть, при выполнении задачи по умолчанию мне нужно отправить файл в качестве параметра для моего dist-файла задачи. – rjsandim

ответ

3

расстояние-файл doen't должен быть задачи глотка, вы можете сделать эту функцию, которую вы можете передать файл или 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); 
    }); 
}); 
+0

Спасибо! Он полностью работает для меня! – rjsandim

Смежные вопросы