При выполнении таска все правила срабатывают, при изменении файлов, 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')
));