Gulp 4 Sass + инъекция BrowserSync с помощью MAMP

Я потратил целый день, пытаясь понять это правильно. я в курсе Gulp 4 и BrowserSync: внедрение стиля? и пробовал разные подходы к этому. Что мне не хватает?

Я пытаюсь заставить gulp внедрить сгенерированный стиль sass в браузер. На данный момент он открывает новую вкладку со сгенерированным css, но не обновляет и не вводит новый сгенерированный стиль при изменении. Я получил:

[Browsersync] Watching files...
[21:27:36] Starting 'buildStyles'...
[21:27:36] Finished 'buildStyles' after 40 ms
[Browsersync] File event [change] : site/templates/styles/main.css

Но не впрыскивает. Вот мой gulpfile.js:

const { src, dest, watch, series, parallel } = require('gulp');
const sass = require('gulp-sass');
const browsersync = require('browser-sync').create();


const paths = {
    sass: {
        // By using styles/**/*.sass we're telling gulp to check all folders for any sass file
        src: "site/templates/styles/scss/*.scss",
        // Compiled files will end up in whichever folder it's found in (partials are not compiled)
        dest: "site/templates/styles"
    },
    css: {
        src: "site/templates/styles/main.css"
    }
};

function buildStyles(){
    return src(paths.sass.src)
        .pipe(sass())
        .on("error", sass.logError)
        .pipe(dest(paths.sass.dest))
}

function watchFiles(){
    watch(paths.sass.src,{ events: 'all', ignoreInitial: false }, series(buildStyles));
}


function browserSync(done){
    browsersync.init({
        injectChanges: true,
        proxy: "http://client2019.local/",
        port: 8000,
        host: 'client2019.local',
        socket: {
            domain: 'localhost:80'
        },
        files: [
            paths.css.src
        ]
    });
    done();
    //   gulp.watch("./**/*.php").on("change", browserSync.reload);

}

exports.default = parallel(browserSync, watchFiles); // $ gulp
exports.sass = buildStyles;
exports.watch = watchFiles;
exports.build = series(buildStyles); // $ gulp build

Что мне не хватает?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
399
1

Ответы 1

Я не знаю, полностью ли я понимаю, чего вы хотите.

Чтобы автоматически обновить браузер с помощью BrowserSync после сохранения ваших последних изменений, я использую этот код в своем файле gulp:

    var paths = {
        styles: {
            src: "./src/styles/scss/**/*.scss",
            dest: "./view/styles"
        },
        htmls: {
            src: "./src/**/*.html",
            dest: "./view"
        }
    };

    const styles= () => {
            return...
        }

    const html= () => {
                return...
            }

    const watch = () => {
            browserSync.init({
                server: {
                    baseDir: "./view"
                }
            });
            gulp.watch(paths.styles.src, style);
            gulp.watch(paths.htmls.src, html);
            gulp.watch("src/**/*.html").on('change', browserSync.reload);
        };

    exports.style = style;
    exports.html = html;
    exports.watch = watch;

    var build = gulp.parallel(style, html, watch);

    gulp.task('default', working);

Затем я просто выполнить gulp для сборки и просмотра с автоперезагрузкой.

Другие вопросы по теме