Gulp-js передает в задачу только сохраненный файл

Я хочу передать сохраненный файл, который не нужно компилировать или не нужно сохранять в новом месте, чтобы выполнить gulp-tap, чтобы я мог запустить на нем внешний скрипт.

Прямо сейчас я смотрю полный каталог и при каждом сохранении загружаю весь каталог:

gulp.task('shopify_theme',function(){
gulp.src( './theme/**/*.liquid' )
    .pipe(tap(function(file){
          upload(file);
    }));
})

И это часть загрузки (тема — это приложение, которое загружает активы в магазин)

var upload = function( file ){
var splitPath = file.path.split('theme/').pop();
run('theme upload ' + splitPath, { cwd: 'theme' }).exec();
};

Каждый раз, когда я сохраняю файл жидкости в каталоге /theme, загружаются все файлы (theme/**/*.liquid). gulp-changed не работает, так как во время выполнения задачи место назначения и источник совпадают.

Каков наилучший способ загрузить только измененный файл?


person Harold    schedule 05.09.2014    source источник


Ответы (1)


Вы можете использовать gulp.watch для отслеживания изменений в отдельных файлах:

var upload = function(filePath){
  var splitPath = filePath.split('theme/').pop();
  run('theme upload ' + splitPath, { cwd: 'theme' }).exec();
};

gulp.watch('./theme/**/*.liquid', function(evnt) {
  upload(evnt.path);
});
person Ben    schedule 05.09.2014