BrowserSync не перезагружается при изменении с помощью Gulp

#javascript #node.js #gulp #browser-sync

#javascript #node.js #глоток #синхронизация с браузером #gulp #синхронизация браузера

Вопрос:

У меня возникла проблема, из-за которой BrowserSync не перезагружается при изменении. Из того, что я могу сказать, он зависает при перезагрузке, когда было внесено изменение. Изменения отображаются, когда я обновляю браузер вручную. Вот мой исходный код для моего gulpfile в качестве ссылки

     const {src, dest, watch, series, parallel} = require('gulp')
    const autoprefixer = require('autoprefixer')
    const cssnano = require('cssnano')
    const concat = require('gulp-concat')
    const postcss = require('gulp-postcss')
    const replace = require('gulp-replace')
    const sass = require('gulp-sass')
    const sourcemaps = require('gulp-sourcemaps')
    const uglify = require('gulp-uglify')
    const browsersync = require('browser-sync').create()

    const files = {
        scssPath: 'app/scss/**/*.scss',
        jsPath: 'app/js/**/*.js',
        htmlPath: 'app/index.html'
    }

    const scssTask = () => {
        return src(files.scssPath)
            .pipe(sourcemaps.init())
            .pipe(sass())
            .pipe(postcss([ autoprefixer(), cssnano() ]))
            .pipe(sourcemaps.write('.'))
            .pipe(dest('dist'))
            .pipe(browsersync.stream({stream: 'true'}))
    }

    const jsTask = () => {
        return src(files.jsPath)
            .pipe(uglify())
            .pipe(concat('main.js'))
            .pipe(dest('dist'))
            .pipe(browsersync.stream({stream: 'true'}))
    }

    const serverRefresh = (done) => {
        browsersync.reload()
        done()
    }

    const serve = (done) => {
        browsersync.init({
            server:{
                baseDir: './'
            }
        })
        done()
    }

    const watchTask = () => {
        watch([files.scssPath, files.jsPath], series(parallel(scssTask, jsTask), serverRefresh))
    }

    exports.default = series(parallel(scssTask, jsTask), serve, watchTask)
  

Пожалуйста, дайте мне знать, где я могу это исправить, поскольку я пробовал разные подходы и пока не нашел решения.

Комментарии:

1. В консоли браузера вы получаете какие-либо сообщения об ошибках?

2. Кроме того, упростите свой код, удалив любое использование serverRefresh задачи — вы уже перезагружаете сервер в других своих задачах, поэтому повторное выполнение может вызвать некоторые проблемы (особенно зависание, которое вы видите).

3. И используйте .pipe(reload({ stream: true })); вместо .pipe(browsersync.stream({stream: 'true'})) вызовов. stream не использует те параметры, которые вы использовали.

4. В терминале я не получаю ошибок, я получаю строку обновления браузеров, но она зависает и не возвращает завершенную задачу при отправке (не уверен, предназначено ли это или нет. В данный момент меня нет дома, но я учту ваши предложения. Спасибо!