2017-04-24 101 views
0

我有一些gulpfile.js下面,有什麼是錯的。準確的說,當我在終端上鍵入吞有自帶和錯誤: 'browserSync' 之後614微秒 [20時52分42秒]與gulp瀏覽器同步的錯誤

TypeError: args.cb is not a function 
    at Object.init 
    at Gulp.<anonymous> 
    at module.exports 
    at Gulp.Orchestrator._runTask 
    at Gulp.Orchestrator._runStep 
    at Gulp.Orchestrator.start 
    at Gulp.<anonymous> 
    at module.exports 
    at Gulp.Orchestrator._runTask 
    at Gulp.Orchestrator._runStep 

我gulpfile.js誤碼

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

      var src = { 
      html:['./app/index.html'], 
      js:['./app/js/app.js'] 
      }; 

      var sassOptions = { 
       errLogToConsole: true, 
       outputStyle: 'expanded' 
      }; 

      var autoprefixerOptions = { 
       browsers: ['last 15 versions', '> 5%', 'Firefox ESR'] 
      }; 

      jshint: { 
       options: { 
       node: true 
       } 
      } 

      //tasks 
      gulp.task('default', ['watch'], function(){ 
       gulp.start('watch'); 
      }); 

      gulp.task('lint', function() { 
       return gulp.src('./app/js/app.js') 
         .pipe(jshint()) 
         .pipe(jshint.reporter('default')); 
      }); 

      gulp.task('browserSync', function() { 
       browserSync.init({ 
        server: { 
         baseDir: 'app', 
         index: 'index.html' 
        }, 
        port: 3000, 
        open: true 
       }); 
      }); 

      gulp.task('sass', function() { 
       return gulp.src('app/scss/**/*.scss') 
        .pipe(sass(sassOptions).on('error', sass.logError)) 
        .pipe(autoprefixer(autoprefixerOptions)) 
        .pipe(sassdoc()) 
        .pipe(gulp.dest('app/css')) 
        .pipe(browserSync.reload({ 
         stream: true 
        })) 
      }); 

      gulp.task('html', function(){ 
       gulp.src(src.html) 
        .pipe(browserSync.reload({ 
         stream: true 
        })) 
      }); 

      gulp.task('js', function(){ 
       gulp.src(src.js) 
        .pipe(browserSync.reload({ 
         stream: true 
        })) 
      }); 

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

的事情是一切工作正常,除非它不直接打開index.html文件,只是空的瀏覽器窗口。有人能告訴我什麼是錯誤的錯誤,並直接打開index.html文件?

回答

0

我不認爲你應該有watch作爲default的依賴,並且在函數中調用它。 ?

//tasks 
gulp.task('default', ['watch']); 
+0

也許只有這個替換default工作很好,謝謝 – Kirill

0

也許試試這個:

gulp.task('browserSync', function(done) { 
      browserSync.init({ 
       server: { 
        baseDir: 'app', 
        index: 'index.html' 
       }, 
       port: 3000, 
       open: true 
      }); 
      done(); 
     }); 

只是一個快速的猜測,那是我的設置方式和它的作品。您的錯誤消息表明它可能正在尋找回撥功能。

+0

不行,同樣的錯誤:( – Kirill

+0

我嘗試了所有的任務一個接一個,「默認」的任務是不工作的人,但爲什麼 – Kirill