gulp.task('sass:compile', function () {
return gulp.src('./source/**/assets/sass/**/*.sass')
.pipe(sass({outputStyle: 'compressed'}).on('error', sass.logError))
.pipe(rename({
suffix: '.min'
}))
.pipe(gulp.dest('./dist/**/assets/css'))
gulp.task('copy', function () {
return gulp.src(['./source/**/*.*', '!./source/assets/sass/**/*.sass'])
.pipe(gulp.dest('./dist'));
});
/* ========== Инициализируем пакеты ========== */
const gulp = require('gulp');
const browserSync = require('browser-sync').create();
const sass = require('gulp-sass');
const rimraf = require('rimraf');
const rename = require('gulp-rename');
/* ========== Создаем задачу для запуска сервера ========== */
gulp.task('server', function () {
browserSync.init({
server: {
port: 9000,
baseDir: './dist'
}
});
/* ========== Устанавливаем watch на просмотр изменений любых файлов в папке dist ========== */
gulp.watch('./dist/**/*').on('change', browserSync.reload);
});
/* ========== Создаем задачу для компиляции SASS ========== */
gulp.task('sass:compile', function () {
return gulp.src('./source/assets/sass/**/*.sass')
.pipe(sass({outputStyle: 'compressed'}).on('error', sass.logError))
.pipe(rename({
suffix: '.min'
}))
.pipe(gulp.dest('./dist/assets/css'))
});
/* ========== Создаем задачу для копирования папок и фалов кроме тех которые не нужны ========== */
gulp.task('copy', function () {
return gulp.src(['./source/**/*.*', '!./source/assets/sass/**/*.sass'])
.pipe(gulp.dest('./dist'));
});
/* ========== Создаем задачу для слежения за всеми файлами на изменение (в папка - sass, js, images, fonts, и корневой папке) ========== */
gulp.task('watch', function () {
gulp.watch('./source/assets/sass/**/*.sass', gulp.series('sass:compile'));
gulp.watch(['./source/**/*.*', '!./source/assets/sass/**/*.sass'], gulp.series('copy'));
});
/* ========== Создаем задачу для очистки файлов продакшна ========== */
gulp.task('clean', function del(cb) {
return rimraf('./dist', cb)
})
/* ========== Создаем задачу по умолчания для запуска компиляции SASS, копирования файлов и запуска сервера ========== */
gulp.task('default', gulp.series(
'clean',
gulp.parallel('sass:compile', 'copy'),
gulp.parallel('watch', 'server')
));