Задать вопрос
@wether_report

Почему прерывается таск styles gulp?

Собрал свою первую сборку gulp в жизни, по гайдам разумеется) Изначально всё было хорошо, но добавил ещё несколько плагинов к основным (gulp-imagemin, gulp-htmlmin, gulp-sourcemaps) и случилась такая беда, что после запуска задачи gulp.default изменения в scss никаким образом не отражаются в браузере, только перезапуск галпа помогает. Так же интересует вопрос почему функция на минификацию html не работает, если её добавить в таск build, а только отдельно. Всем спасибо!
const {src, dest, watch, parallel, series} = require('gulp');
const scss = require('gulp-sass')(require('sass'));
const concat = require('gulp-concat');
const browserSync = require('browser-sync').create();
const autoprefixer = require('gulp-autoprefixer');
const clean = require('gulp-clean');
const imagemin = require('gulp-imagemin');
const htmlmin = require('gulp-htmlmin');
const sourcemaps = require('gulp-sourcemaps');

function styles() {
    return src('src/sass/*.+(scss|sass)')
        .pipe(sourcemaps.init())
        .pipe(autoprefixer({overrideBrowserlist:['last 10 version']}))
        .pipe(concat('style.min.css'))
        .pipe(scss({outputStyle: 'compressed'}))
        .pipe(sourcemaps.write())
        .pipe(dest('src/css'))
        .pipe(browserSync.stream())
};

function watching() {
    watch(['src/sass/*.+(scss|sass)'], styles)
    watch(['src/**/*.html']).on('change', browserSync.reload)
};

function browsersync() {
    browserSync.init({
        server: {
            baseDir: "src/"
        }
    });
};

function html() {
    return src('src/**/*.html')
    .pipe(htmlmin({
        removeComments: true,
        collapseWhitespace: true 
    }))
    .pipe(dest('public'));
};

function images() {
    return src(['src/images/**/*'])
        .pipe(imagemin({progressive: true}))
        .pipe(dest('public/images'))
};

function building() {
    return src([
        'src/css/style.min.css',
        'src/**/*.html'
        
    ], {base: 'src'})
    .pipe(dest('public'))
};

function cleanPublic() {
    return src('public')
        .pipe(clean())
};

exports.styles = styles;
exports.watching = watching;
exports.browsersync = browsersync;
exports.html = html; //если надо сжать html, нужно прописать отдельно от build почему-то

exports.build = series(cleanPublic, html, images, building);
exports.default = parallel(styles, browsersync, watching);


вот структура проекта: 6413972ba806f337396390.png
  • Вопрос задан
  • 35 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Froggyweb
function watching() {
    watch(['src/sass/**/*.+(scss|sass)'], styles)
    watch(['src/**/*.html']).on('change', browserSync.reload)
};
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы