2016-02-23 2 views
7

Ich bin mit Browser-Sync in schluck Aufgabe zum Beispiel:Browser-Sync-Typeerror args.cb ist keine Funktion

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

ich diesen Zug Aufgabe (zum Beispiel) in schluck Uhr verwenden app/**/*.html wie:

gulp.task('watch',function(){ 
    gulp.watch('app/**/*.html', ['gulp-task']); 
}); 

erstmals Änderung in hTML-Dateien ist alles in Ordnung, aber für den nächsten Änderungen i erhalten Fehler: TypeError: args.cbn is not a function ...

Jungs sagte la installieren Testversion für Browser-Sync mit Befehl unten:

npm install [email protected] --save-dev 

und es hilft nicht.

aber ich bekomme den gleichen Fehler. Was ist los mit dir?

+1

Haben Sie gefunden, eine Lösung ? – IanEdington

Antwort

1

Ich lief auch in dieses Problem und löste es, indem Sie die Klammern aus dem Rückruf in der Überwachungsaufgabe entfernen.

Versuchen Sie Ihre Uhr Aufgabe Wechsel zu:

gulp.task('watch',function(){ 
    gulp.watch(['app/**/*.html'], 'gulp-task'); 
}); 

Oder noch besser, versuchen Sie die Reload-Methode mit so etwas wie dies mit:

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); 
}); 
2

Nach dem Lesen des Dokuments von Browser-Sync, bemerkte ich, dass das Verfahren .init(config, cb)zwei Parameter .So hat, um Ihren Code dies ändern:

gulp.task('gulp-task',function(){ 
    browserSync.init({ 
     server:{ 
      baseDir: 'app' 
     } 
    }) 
    //rest of task 
},function(){ 
    // something you want to do 
}); 
+0

Danke! Sie könnten auch einfach 'null' parsen. – NinjaFart

2

Beim Definieren der 'Überwachung' müssen wir angeben, welche Aufgaben vor der Überwachung ausgeführt werden müssen. Dadurch wird das Problem behoben. Zusätzliche Parameter mit vorgeplanten Aufgaben müssen in der Überwachungsliste der Parameter hinzugefügt werden.

gulp.task ('watch', [ 'browserSync', 'sass'], function() {...})

var gulp = require('gulp'); 
 
var sass = require('gulp-sass'); 
 
var browserSync = require('browser-sync').create(); 
 

 
gulp.task('hello', function() { 
 
    console.log('Hello Gulp-Shash'); 
 
}); 
 

 
gulp.task('sass', function(){ 
 
    return gulp.src('app/scss/**/*.scss') 
 
    .pipe(sass()) 
 
    .pipe(gulp.dest('app/css')) 
 
    .pipe(browserSync.reload({ 
 
     stream: true 
 
    })) 
 
}); 
 

 
gulp.task('browserSync', function() { 
 
    browserSync.init({ 
 
    server: { 
 
     baseDir: 'app' 
 
    }, 
 
    }) 
 
}) 
 

 
gulp.task('watch', ['browserSync', 'sass'], function(){ 
 
    gulp.watch('app/scss/**/*.scss', ['sass']); 
 
})