@zetproj
GBA

Двойное выполнение таска в Gulp 4, в чем трабл?

При выполнении таска все правила срабатывают, при изменении файлов, watch все фиксирует, однако иногда таски выполняются по два раза. Например если после запуска дефолтного таска изменить файл SASS, то он может выполниться дважды. В чем может быть трабл?

gulp.task('code', function() {
  return gulp.src(source+'/*.html')
    .pipe(browserSync.reload({stream: true}))
});

gulp.task('styles', function(){
  return gulp.src(source+'/'+syntax+'/**/*.'+syntax)
    .pipe(sass({ outputStyle: 'expanded' }).on("error", notify.onError()))
    .pipe(autoprefixer(['last 15 versions']))
    .pipe(cleancss({ level: { 1: { specialComments: 'all' } } }))
    .pipe(rename({ prefix: '', suffix: '.min' }))
    .pipe(gulp.dest(source+'/css'))
    .pipe(browserSync.reload({stream: true}))
});

gulp.task('scripts', function() {
  return gulp.src(source+'/js/**/*.js')
    .pipe(concat('scripts.js'))
    .pipe(uglify())
    .pipe(rename({prefix: '', suffix: '.min'}))
    .pipe(gulp.dest(source+'/js'))
    .pipe(browserSync.reload({stream: true}))
});

gulp.task('images', function() {
  return gulp.src(source+'/img/**/*')
    .pipe(cache(imagemin({
      interlaced: true,
      progressive: true,
      svgoPlugins: [{removeViewBox: false}],
      use: [pngquant()]
    })))
    .pipe(gulp.dest(source+'/img'))
});

gulp.task('browser-sync', function() {
  browserSync({
    server: {
      baseDir: source
    },
    notify: false,
  })
});

gulp.task('watch', function() {
  gulp.watch(source+'/*.html', gulp.parallel('code'))
  gulp.watch(source+'/'+syntax+'/**/*.'+syntax, gulp.parallel('styles'))
  gulp.watch(source+'/js/common.js', gulp.parallel('scripts'))
});

gulp.task('default', gulp.series(
  gulp.series('styles', 'scripts', 'images'),
  gulp.parallel('watch', 'browser-sync')
));
  • Вопрос задан
  • 93 просмотра
Пригласить эксперта
Ответы на вопрос 1
dpr
@dpr
frontend developer
как минимум, не нужно сохранять билд в папку исходников.
Ответ написан
Ваш ответ на вопрос

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

Войти через TM ID
Похожие вопросы