TypeError:gulp中需要的glob模式字符串

时间:2017-05-20 12:07:27

标签: gulp

我正在尝试第一次设置并运行gulp。我收到以下错误,

TypeError: glob pattern string required

这是我的gulp文件,

//*********** IMPORTS *****************
var gulp = require('gulp');
var sass = require('gulp-ruby-sass');
var gutil = require('gulp-util');
var rename = require("gulp-rename");
var map = require("map-stream");
var livereload = require("gulp-livereload");
var concat = require("gulp-concat");
var uglify = require('gulp-uglify');
var watch = require('gulp-watch');
global.errorMessage = '';

//Configuration - Change me
var sassFiles = [
    {
        watch: 'styles/scss/*.scss',
        sass: 'styles/scss/*.scss',
        output: 'styles/css/',
        name: 'style.css',
    },
    {
        watch: '_scss/Admin/**/*.scss',
        sass: '_scss/Admin/admin.scss',
        output: './www/app/View/Themed/Admin/webroot/css',
        name: 'admin.min.css',
    }
];
var jsFiles = [
    {
        watch: '_assets/admin/*.js',
        output: './www/app/View/Themed/Admin/webroot/js/',
        name: 'admin.js',
        nameMin: 'admin.min.js'
    },
    {
        watch: 'html/js/*.js',
        output: './www/app/View/Themed/Site/webroot/js/',
        name: 'site.js',
        nameMin: 'site.min.js'
    }
];
//END configuration


gulp.task('watch', function () {
    for (var i in sassFiles) {
        sassWatch(sassFiles[i]);
    }

});

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

function scriptWatch(jsData) {
    gulp.src(jsData.watch)
    .pipe(watch({glob:jsData.watch, emitOnGlob: true}, function() {
        gulp.src(jsData.watch)
        .pipe(concat(jsData.name))
        .pipe(gulp.dest(jsData.output))
        .pipe(uglify({outSourceMap: false}))
        .pipe(rename(jsData.nameMin))
        .pipe(gulp.dest(jsData.output));
    }));
}

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

/// Defaults yo
var sassOptions = {
    'style': 'compressed',
    'unixNewlines': true,
    'cacheLocation': '_scss/.sass_cache'
};

// Does pretty printing of sass errors
var checkErrors = function (obj) {
    function checkErrors(file, callback, errorMessage) {
        if (file.path.indexOf('.scss') != -1) {
                file.contents  = new Buffer("\
                    body * { white-space:pre; }\
                    body * { display: none!important; }\
                    body:before {\
                        white-space:pre;\
                        content: '"+ global.errorMessage.replace(/(\\)/gm,"/").replace(/(\r\n|\n|\r)/gm,"\\A") +"';\
                    }\
                    html{background:#ccf!important; }\
                ");
        }
        callback(null, file);
    }
    return map(checkErrors);
};

1 个答案:

答案 0 :(得分:0)

你的两个gulp.src调用引用了sassData和jsData,我认为你的意思是sassFiles和jsFiles。