Попробуйте это:
gulp.task('styles', function() {
return gulp.src(settings.themeLocation + 'css/style.css')
.pipe(postcss([cssImport, mixins, cssvars, nested, rgba, colorFunctions, autoprefixer]))
.on('error', (error) => console.log(error.toString()))
.pipe(gulp.dest(settings.themeLocation))
// added below
.pipe(browserSync.stream());
});
// now this task is unnecessary:
// gulp.task('waitForStyles', gulp.series('styles', function() {
// return gulp.src(settings.themeLocation + 'style.css')
// .pipe(browserSync.stream());
// }))
// cb added, called below
gulp.task('watch', function(cb) {
browserSync.init({
notify: false,
proxy: settings.urlToPreview,
ghostMode: false
});
gulp.watch('./**/*.php', function(done) {
browserSync.reload();
done();
});
// change to gulp.series below
// gulp.watch(settings.themeLocation + 'css/**/*.css', gulp.series('waitForStyles'));
// changed to 'styles' below
gulp.watch(settings.themeLocation + 'css/**/*.css', gulp.series('styles'));
gulp.watch([settings.themeLocation + 'js/modules/*.js', settings.themeLocation + 'js/scripts.js'], gulp.series('waitForScripts'));
cb();
});
Я видел, что у gulp4 возникли проблемы только с одной задачей, например, gulp.parallel('oneTaskHere')
, поэтому попробуйте поменять parallel
на series
в своих операторах наблюдения, как показано выше.
Я внес некоторые изменения, чтобы упростить код - попробуйте. Нет необходимости в 'waitForStyles'
, просто переместите трубу browserSync.stream()
в конец задачи styles
.
Или вместо перемещения канала browserSync.stream просто сделайте это:
gulp.watch(settings.themeLocation + 'css/**/*.css', gulp.series('styles', browserSync.reload));
но мне, кажется, повезло больше с конвейером browserSync в конце версии задачи 'styles'
.
Поскольку вы используете плагин webpack
, я предполагаю, что задача сценариев должна обрабатываться иначе, чем задача стилей. Вы можете попробовать:
gulp.watch([settings.themeLocation + 'js/modules/*.js', settings.themeLocation + 'js/scripts.js'], gulp.series('waitForScripts', browserSync.reload));
и тогда нет необходимости в 'waitForScripts'
задании.