有gulp watch glob的问题应该是String或Array,而不是object

时间:2016-02-24 21:48:07

标签: gulp gulp-watch

我的手表插件的gulpfile一直出现以下错误

‘watch* errored after XXms
Error in plugin ‘gulp-watch’
Message:
glob should be String or Array, not object

这是我在gulpfile中的代码看起来像

function sassWatch(sassData) {
    gulp.src(sassData.watch)
    .pipe(watch({glob:sassData.watch, emitOnGlob: true}, function() {
        gulp.src(sassData.sass)
        .pipe(sass(sassOptions))
        .on('error', function(err) {
                gutil.log(err.message);
                gutil.beep();
                global.errorMessage = err.message + " ";
        })
        .pipe(checkErrors())
        .pipe(rename(sassData.name))
        .pipe(gulp.dest(sassData.output))
        .pipe(livereload());
    }));
}

知道我在这里做错了吗?

1 个答案:

答案 0 :(得分:0)

您正在使用1.0.0之前的方式为gulp-watch提供通配模式,但您的gulp-watch插件的版本大于> = 1.0.0。

gulp-watch的1.0.0版本更改了方法签名:

watch([options, callback])

watch(glob, [options, callback])

这意味着你必须提供这样的通配模式:

.pipe(watch(sassData.watch, { /*other options*/ }, function() {

请注意,1.0.0中删除了emitOnGlob选项。请阅读this github issueMigration to 1.0.0 notes以获取更多信息。