@yura_born

Почему gulp не обновляет скрипты, sass и html?

Ошибок никаких не показывает, browser-Sync загружает страницу и на этом все, какие бы изменения не проводились, обновлений нет.
Запустил также watch - пишет starting watch, вношу изменения и ничего не происходит, хз вообще что за фигня

var gulp       = require('gulp'), // Подключаем Gulp
    sass         = require('gulp-sass'), //Подключаем Sass пакет,
    browserSync  = require('browser-sync'), // Подключаем Browser Sync
    concat       = require('gulp-concat'), // Подключаем gulp-concat (для конкатенации файлов)
    uglify       = require('gulp-uglifyjs'), // Подключаем gulp-uglifyjs (для сжатия JS)
    cssnano      = require('gulp-cssnano'), // Подключаем пакет для минификации CSS
    rename       = require('gulp-rename'), // Подключаем библиотеку для переименования файлов
    del          = require('del'), // Подключаем библиотеку для удаления файлов и папок
    imagemin     = require('gulp-imagemin'), // Подключаем библиотеку для работы с изображениями
    pngquant     = require('imagemin-pngquant'), // Подключаем библиотеку для работы с png
    cache        = require('gulp-cache'), // Подключаем библиотеку кеширования
    autoprefixer = require('gulp-autoprefixer');// Подключаем библиотеку для автоматического добавления префиксов



gulp.task('sass', function() { // Создаем таск Sass
    return gulp.src('./assets/scss/**/*.scss') // Берем источник
        .pipe(sass()) // Преобразуем Sass в CSS посредством gulp-sass
        .pipe(autoprefixer([
            "last 1 major version",
            ">= 1%",
            "Chrome >= 45",
            "Firefox >= 38",
            "Edge >= 12",
            "Explorer >= 10",
            "iOS >= 9",
            "Safari >= 9",
            "Android >= 4.4",
            "Opera >= 30"
        ], { cascade: true })) // Создаем префиксы
        .pipe(gulp.dest('assets/css')) // Выгружаем результата в папку app/css
        .pipe(browserSync.reload({stream: true})) // Обновляем CSS на странице при изменении
});



gulp.task('browser-sync', function() { // Создаем таск browser-sync
    browserSync({ // Выполняем browserSync
        server: { // Определяем параметры сервера
            baseDir: 'assets' // Директория для сервера - app
        },
        notify: false // Отключаем уведомления
    });
});



gulp.task('scripts', function() {
    return gulp.src([ // Берем все необходимые библиотеки
        './assets/js/hs.core.js',
        './assets/js/components/hs.bg-video.js',
        './assets/js/components/hs.chartist-area-chart.js',
        './assets/js/components/hs.chartist-bar-chart.js',
        './assets/js/components/hs.chart-pie.js',
        './assets/js/components/hs.clipboard.js',
        './assets/js/components/hs.countdown.js',
        './assets/js/components/hs.counter.js',
        './assets/js/components/hs.cubeportfolio.js',
        './assets/js/components/hs.datatables.js',
        './assets/js/components/hs.dropzone.js',
        './assets/js/components/hs.fancybox.js',
        './assets/js/components/hs.file-attach.js',
        './assets/js/components/hs.focus-state.js',
        './assets/js/components/hs.g-map.js',
        './assets/js/components/hs.go-to.js',
        './assets/js/components/hs.hamburgers.js',
        './assets/js/components/hs.header.js',
        './assets/js/components/hs.header-fullscreen.js',
        './assets/js/components/hs.instagram.js',
        './assets/js/components/hs.malihu-scrollbar.js',
        './assets/js/components/hs.modal-window.js',
        './assets/js/components/hs.onscroll-animation.js',
        './assets/js/components/hs.password-strength.js',
        './assets/js/components/hs.progress-bar.js',
        './assets/js/components/hs.quantity-counter.js',
        './assets/js/components/hs.range-datepicker.js',
        './assets/js/components/hs.range-slider.js',
        './assets/js/components/hs.scroll-effect.js',
        './assets/js/components/hs.scroll-nav.js',
        './assets/js/components/hs.selectpicker.js',
        './assets/js/components/hs.show-animation.js',
        './assets/js/components/hs.slick-carousel.js',
        './assets/js/components/hs.step-form.js',
        './assets/js/components/hs.sticky-block.js',
        './assets/js/components/hs.summernote-editor.js',
        './assets/js/components/hs.svg-injector.js',
        './assets/js/components/hs.toggle-state.js',
        './assets/js/components/hs.unfold.js',
        './assets/js/components/hs.validation.js',
        './assets/js/components/hs.video-player.js',
        './assets/js/theme-custom.js',
    ])
        .pipe(concat('theme.min.js')) // Собираем их в кучу в новом файле libs.min.js
        .pipe(uglify()) // Сжимаем JS файл
        .pipe(gulp.dest('assets/js')); // Выгружаем в папку app/js
});



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



gulp.task('css-libs', function() {
    return gulp.src('./assets/css/theme.css') // Выбираем файл для минификации
        .pipe(sass()) // Преобразуем Sass в CSS посредством gulp-sass
        .pipe(cssnano()) // Сжимаем
        .pipe(rename({suffix: '.min'})) // Добавляем суффикс .min
        .pipe(gulp.dest('assets/css')); // Выгружаем в папку app/css
});



gulp.task('clean', async function() {
    return del.sync('dist'); // Удаляем папку dist перед сборкой
});



gulp.task('img', function() {
    return gulp.src('assets/img/**/*') // Берем все изображения из app
        .pipe(cache(imagemin({ // С кешированием
            // .pipe(imagemin({ // Сжимаем изображения без кеширования
            interlaced: true,
            progressive: true,
            svgoPlugins: [{removeViewBox: false}],
            use: [pngquant()]
        }))/**/)
        .pipe(gulp.dest('dist/img')); // Выгружаем на продакшен
});



gulp.task('prebuild', async function() {

    var buildCss = gulp.src([ // Переносим библиотеки в продакшен
        'assets/css/theme.css',
        // 'assets/css/main.css',
        // 'assets/css/libs.min.css'
    ])
        .pipe(gulp.dest('dist/css'))

    var buildFonts = gulp.src('assets/fonts/**/*') // Переносим шрифты в продакшен
        .pipe(gulp.dest('dist/fonts'))

    var buildJs = gulp.src('assets/js/**/*') // Переносим скрипты в продакшен
        .pipe(gulp.dest('dist/js'))

    var buildHtml = gulp.src('assets/*.html') // Переносим HTML в продакшен
        .pipe(gulp.dest('dist'));

});



gulp.task('clear', function (callback) {
    return cache.clearAll();
})



gulp.task('watch', function() {
    gulp.watch('assets/scss/**/*.scss', gulp.parallel('sass')); // Наблюдение за sass файлами
    gulp.watch('assets/*.html', gulp.parallel('code')); // Наблюдение за HTML файлами в корне проекта
    gulp.watch('assets/js/theme-custom.js', gulp.parallel('scripts')); // Наблюдение за главным JS файлом и за библиотеками
});


gulp.task('default', gulp.parallel('css-libs', 'sass', 'scripts', 'browser-sync', 'watch'));


gulp.task('build', gulp.parallel('prebuild', 'clean', 'img', 'sass', 'scripts'));
  • Вопрос задан
  • 369 просмотров
Пригласить эксперта
Ответы на вопрос 1
Попробуйте изменить код следующим образом:
browserSync = require('browser-sync').create();
...
gulp.task('browser-sync', function() {
    browserSync.init({
        server: {
            baseDir: 'assets'
        },
        notify: false
    });
});
Ответ написан
Ваш ответ на вопрос

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

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