У меня есть файл gulp 4, который содержит задачу наблюдения и задачу SyncBrowsers. Эти две задачи успешно выполняются, когда запускаются независимо. однако тогда в задании по умолчанию с gulp.series я не получаю ответа. Задача кажется зависшей. Может кто-нибудь объяснить, почему это так и как это исправить?
Я следовал советам API от gulpjs.com для начала и для серии задач. Я также исследовал документацию browserSync от https://github.com/gulpjs/gulp/blob/master/docs/recipes/minimal-browsersync-setup-with-gulp4.md.. Этот пример выполняет тот же процесс, что и я, и работает правильно.
let gulp = require('gulp');
var sass = require('gulp-sass');
const browserSync = require('browser-sync');
let uglify = require('gulp-uglify');
let prefixer = require('gulp-autoprefixer');
let gulpif = require('gulp-if');
let nano = require('gulp-cssnano');
let sourcemap = require('gulp-sourcemaps');
let del = require('del');
let runSequence = require('run-sequence');
let pug = require('gulp-pug');
const server = browserSync.create();
server.watch('wwwroot/*.html').on("change", server.reload);
//build tasks
function clean() {
return del('wwwroot');
}
//development tasks
function SyncBrowsers(cb) {
server.init({
server:{
baseDir: 'wwwroot',
index: 'index.html'
},
port: 3002
});
cb();
}
function fsass() {
return gulp.src('app/scss/**/*.scss')
.pipe(sass())
.pipe(gulp.dest('wwwroot/css'))
}
function pugtohtml() {
return gulp.src('app/pug/**/*.pug')
.pipe(pug({
pretty:true
}))
.pipe(gulp.dest('./wwwroot/'))
}
function watch (cb) {
gulp.watch(['app/scss/**/*.scss','app/*.html','app/js/**/*.js','app/pug/**/*.pug'],gulp.series(fsass, pugtohtml));
cb();
}
function build (){
return gulp.series(clean, pugtohtml, fsass, fonts)
}
function defaults(cb){
gulp.series(SyncBrowsers,watch);
cb();
}
//run tasks
exports.build = build;
exports.default = defaults;
exports.watch = watch;
exports.pugtohtml = pugtohtml;
exports.fsass = fsass;
exports.clean = clean;
exports.SyncBrowsers = SyncBrowsers;