Browser-sync TypeError args.cb不是函数

Had*_*uli 10 npm gulp gulp-watch browser-sync

我在gulp任务中使用浏览器同步,例如:

gulp.task('gulp-task',function(){
    browserSync.init({
        server:{
            baseDir: 'app'
        }
    }) 
    //rest of task 
 });
Run Code Online (Sandbox Code Playgroud)

我在gulp watch中使用这个gulp任务(例如)app/**/*.html像:

gulp.task('watch',function(){
    gulp.watch('app/**/*.html', ['gulp-task']);
});
Run Code Online (Sandbox Code Playgroud)

首次更改html文件一切正常,但对于下一次更改我得到错误: TypeError: args.cbn is not a function ...

伙计们说用以下命令安装浏览器同步的最新版本:

npm install browser-sync@latest --save-dev
Run Code Online (Sandbox Code Playgroud)

它没有帮助.

我收到同样的错误.怎么了?

sch*_*573 4

我也遇到了这个问题,并通过从监视任务的回调中删除括号来解决它。

尝试将您的监视任务更改为:

 gulp.task('watch',function(){
    gulp.watch(['app/**/*.html'], 'gulp-task');
});
Run Code Online (Sandbox Code Playgroud)

或者更好的是,尝试使用 reload 方法,如下所示:

var gulp        = require('gulp');
var browserSync = require('browser-sync').create();
var jshint      = require('gulp-jshint');
var watch       = require('gulp-watch');
var reload      = browserSync.reload;

gulp.task('default', ['jshint', 'serve', 'watch']);

gulp.task('jshint', function() {
  return gulp.src('src/app/**/*.js')
          .pipe(jshint())
          .pipe(jshint.reporter('jshint-stylish'));
});

// Static server
gulp.task('serve', function() {
  browserSync.init({
      server: {
          baseDir: "./src"
      }
  });
});

gulp.task('watch', function() {
  gulp.watch(['src/**/*.html', 'src/app/**/*.js'], reload);
});
Run Code Online (Sandbox Code Playgroud)