不了解该错误是什么,在gulp 4中没有真正阅读有关浏览器同步的文档。在gulp 4的文档中也看不懂(async)。如何解决这个问题。谢谢。 bla bla bla bla bla bla bla bla bla bla bla bla
'default' errored after 23 ms
The following tasks did not complete: browser-sync
Did you forget to signal async completion?
var gulp = require('gulp'),
gutil = require('gulp-util' ),
sass = require('gulp-sass'),
browserSync = require('browser-sync'),
concat = require('gulp-concat'),
uglify = require('gulp-uglify'),
cleancss = require('gulp-clean-css'),
rename = require('gulp-rename'),
autoprefixer = require('gulp-autoprefixer'),
notify = require('gulp-notify');
gulp.task('browser-sync', function() {
browserSync({
server: {
baseDir: 'app'
},
notify: false,
// open: false,
// online: false, // Work Offline Without Internet Connection
// tunnel: true, tunnel: "projectname", // Demonstration page: http://projectname.localtunnel.me
})
});
gulp.task('styles', function() {
return gulp.src('app/'+syntax+'/**/*.'+syntax+'')
.pipe(sass({ outputStyle: 'expanded' }).on("error", notify.onError()))
.pipe(rename({ suffix: '.min', prefix : '' }))
.pipe(autoprefixer(['last 15 versions']))
.pipe(cleancss( {level: { 1: { specialComments: 0 } } }))
.pipe(gulp.dest('app/css'))
.pipe(browserSync.stream())
});
gulp.task('scripts', function() {
return gulp.src([
'app/libs/jquery/dist/jquery.min.js',
'app/js/common.js',
])
.pipe(concat('scripts.min.js'))
.pipe(uglify())
.pipe(gulp.dest('app/js'))
.pipe(browserSync.reload({ stream: true }))
});
gulp.task('code', function() {
return gulp.src('app/*.html')
.pipe(browserSync.reload({ stream: true }))
});
gulp.task('watch', function() {
gulp.watch('app/'+syntax+'/**/*.'+syntax+'', gulp.parallel('styles'));
gulp.watch(['libs/**/*.js', 'app/js/common.js'], gulp.parallel('scripts'));
gulp.watch('app/*.html', gulp.parallel('code'))
});
gulp.task('default', gulp.parallel('watch', 'browser-sync'));
答案 0 :(得分:0)
改为使用此:
gulp.task('browser-sync', function(done) {
browserSync({
server: {
baseDir: 'app'
},
notify: false,
// open: false,
// online: false, // Work Offline Without Internet Connection
// tunnel: true, tunnel: "projectname", // Demonstration page: http://projectname.localtunnel.me
});
done();
});
请注意done
,这是指示浏览器同步设置任务完成的简便方法。参见callback to signal async completion。
有关@Dirk关于不使用.create()
的评论,请参见
发布2.0.0语法(推荐)
尽管以上内容仍受支持[ed。 no create()],我们现在建议以下内容 代替。调用.create()意味着您将获得唯一的引用并允许 您可以创建多个服务器或代理。
因此,使用create可以打开browserSync的多个实例-提供不同的文件或监视/重新加载不同的文件-但在较简单的情况下则不需要。