我下面有一些gulpfile.js,有些不对劲。确切地说,当我在终端输入gulp时会出现错误: 614μs后,'browserSync'出错 [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文件吗?
答案 0 :(得分:0)
也许试试这个:
gulp.task('browserSync', function(done) {
browserSync.init({
server: {
baseDir: 'app',
index: 'index.html'
},
port: 3000,
open: true
});
done();
});
只是一个快速的猜测,这就是我的设置和运作方式。您的错误消息表明它可能正在寻找回叫功能。
答案 1 :(得分:0)
我认为您不应将watch
作为default
的依赖,并在函数中调用它。
也许只用这个替换default
:
//tasks
gulp.task('default', ['watch']);