繁体   English   中英

gulp browsersync的错误

[英]the error with gulp browsersync

我下面有一些gulpfile.js,有些不对劲。 确切地说,当我在终端输入gulp时会出现错误:'browserSync'在614μs[20:52:42]之后出错

   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文件吗?

也许试试这个:

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

只是一个快速的猜测,这就是我的设置和运作方式。 您的错误消息表明它可能正在寻找回叫功能。

我不认为你应该有watch既作为的扶养default ,并调用它的功能。

也许用以下方法替换default

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM