Приветствую всех! Использую такую штуку
gulp-watch для beauitify js файлов на лету. Возникла ситуация - beautify меняет файл, вотчер срабатывает еще раз и получается замкнутый круг... Нужно перед стартом функции сделать unwatch и после окончания вновь вернуть прослушку файла.
var w = watch('./source/js/**/*.js', {verbose: true});
w.on('data', function (vinyl) {
console.log(vinyl.relative);
w.unwatch(vinyl.relative);
});
Вот этот код по идее должен один раз показать измененный файл и прекратить прослушку, и при втором изменении больше не показывать ничего, но видимо я что то делаю не так.
gulp.task('watch:js', function () {
var w = watch('./source/{amcharts,js}/**/*.js', {verbose: true});
w.on('data', function (vinyl) {
console.log(vinyl.relative);
// Beautify JS file
var jsBeautifier = (function (file) {
var q = Q.defer();
w.unwatch(file);
gulp.src(file)
.pipe(prettify({
config: './.jsbeautifyrc'
}))
.pipe(gulp.dest(function(file) {
return file.base;
}))
.on('end', function () {
w.add(file);
q.resolve(file);
});
return q.promise;
}).call(this);
});
});
Помогите правильно использовать плагин.