@drtvader
Вечный студент

Почему Gulp watch постоянно обрабатывает файлы?

Добрый день всем! При запуске gulp watch начинает постоянно обновлять файлы? Он же ведь должен только при сохранении файла обновиться и замолчать?
var gulp   = require('gulp'),
    watch  = require('gulp-watch')
    config = require('../../config');

/*
 * Смотрим за изменениями
 */

gulp.task('watch', function(){
    watch([config.watch.html], function(event, cb) {
        gulp.start('html');
    });
    watch([config.watch.less], function(event, cb) {
        gulp.start('less');
    });
    watch(config.watch.jsInternal, function(event, cb) {
        gulp.start('js-internal');
    });
    watch([config.watch.jsExternal], function(event, cb) {
        gulp.start('js-external');
    });
    watch([config.watch.images], function(event, cb) {
        gulp.start('images');
    });
    watch([config.watch.sprites], function(event, cb) {
        gulp.start('sprites');
    });
    watch([config.watch.fonts], function(event, cb) {
        gulp.start('fonts');
    });
});
  • Вопрос задан
  • 642 просмотра
Пригласить эксперта
Ответы на вопрос 3
Предположу, что вы сохраняете файлы в то же место, откуда берете
var src = '*/**';
gulp.src(src)
  .pipe(somePlugin)
  .pipe(gulp.dest(src));

выложите код gulpfile.js
Ответ написан
ArthurGurinovich
@ArthurGurinovich
А не могли бы Вы опубликовать сам таск, чтобы точнее определить причину?
Ответ написан
Sergamers
@Sergamers
front-end
Покажи работу своих тасков, что ты вызываешь ('html', 'less' и т.п. ) Косяк кроется там.
Пример рабочего таска + watch
gulp.task('default', ['run-beats']);

gulp.task('run-beats', () => {
  gulp.start('clean-css');
  gulp.start('beats-watch-sass');
});

gulp.task('clean-css', () => {
  console.log('Чистим папку app/css/*');
  del(['app/css/**', '!app/css']);
});

gulp.task('beats-sass',  () => {
  console.log('Работы с css файлами в app/css/*');

  return gulp.src('./beats/styles/**/*.scss')           // Какие файлы выбрать
      .pipe(plumber({                                   // обработка ошибок
        errorHandler:  (error) => {
          console.log('Error: ' + error.message);
          this.emit('end');
        }
      }))
      .pipe(sass())                                     // Перевод файлов в sass
      .pipe(autoprefixer({                              // автопрефикс
        browsers: ['> 1%', 'last 10 versions', 'Firefox 5', 'Opera 12', 'ie 8', 'ie 9', 'ie 7']
      }))
      .pipe(gulp.dest('./app/css'))                     // Куда файлы вставить
});

gulp.task('beats-watch-sass', () => {
  console.log('Запускаем отслеживание изменений sass файлов ...');
  gulp.watch('./beats/styles/**/*.scss')
    .on('all', function (event, path) {
      if(event == 'unlink'){
        gulp.start('clean-css');
      }

      gulp.start('beats-sass');
    })
});
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы