const gulp = require('gulp');
const sass = require('gulp-sass');
const plumber = require('gulp-plumber');
const autoprefixer = require('gulp-autoprefixer');
const browserSync = require('browser-sync').create();
const sourceMaps = require('gulp-sourcemaps');
gulp.task('sass', function() { // таск scss
return gulp.src('scss/style.scss')
.pipe(plumber()) // если будут ошибки в style.scss - не отключаться, а работать далее
.pipe(sourceMaps.init())
.pipe(sass())
.pipe(autoprefixer({
browsers: ['last 2 versions']
}))
.pipe(sourceMaps.write())
.pipe(gulp.dest('build/css')) // будет создаваться папка build, внутри нее будет создаваться папка css и туда будет ложиться файл style.css
.pipe(browserSync.reload({
stream: true
})); // перезапускать браузер, при изменениях в таске sass
});
gulp.task('html', function() {
return gulp.src('*.html')
.pipe(gulp.dest('build'))
.pipe(browserSync.reload({
stream: true
}));
});
gulp.task('serve', function() {
browserSync.init({
server: "build"
});
gulp.watch("scss/**/*.scss", gulp.parallel("sass")); // следить за всеми файлами в папке scss и при изменении запускать таск под названием scss
gulp.watch("*.html", gulp.parallel("html")); // тоже самое, только с таском html
});
// данный код не запускается командой gulp serve. приходится перечислять все три таска поочередно.
gulp.task('default', gulp.series('sass', 'html', 'serve'));