Src上的Gulp Glob错误()

时间:2016-08-16 18:59:42

标签: node.js gulp gulp-sass

我正在敲打我应该对gulpfile进行简单修复的问题,这个gulp文件允许它构建scss文件。

我的angular2项目中有以下结构: |-rootDir |-- app |--- <bunch of stuff in the app dir> |-- resources |--- scss |---- <scss files>

但是,每当我运行gulp create时,我都会收到错误消息,指出Error: Invalid glob argument: undefined

我在这里做错了什么???

这是我的gulpfile:

var gulp = require('gulp'),
sass = require('gulp-sass'),
minifycss = require('gulp-minify-css'),
autoprefixer = require('gulp-autoprefixer'),
concat = require('gulp-concat'),
debug = require('gulp-debug'),
del = require('del'),
insert = require('gulp-insert'),
fs = require("fs");

/* Tasks Functions */
sass = function(files, dest) {
    pipe_files = gulp.src(files);

    return pipe_files
        .pipe(debug())
        .pipe(sass().on('error', sass.logError))
        .pipe(autoprefixer('last 2 version', 'safari 5', 'ie 8', 'ie 9', 'opera 12.1', 'ios 6', 'android 4'))
        .pipe(minifycss())
        .pipe(gulp.dest(dest));
}

/* CSS Tasks */
gulp.task( 'styles', function() { sass( ['./resources/scss/*.scss'], './resources/css_gulp/') });

gulp.task('clean', function(cb) {
    del(['./resources/css_gulp/*.*'], cb)
});

gulp.task( 'create', function() {
    gulp.start('styles');
});

gulp.task('default', ['clean'], function() {
    gulp.start('create');
});

那么,我在路上哪里出错?

*编辑* 我添加了gulp-debug,这是输出: [20:03:40] Finished 'create' after 17 ms [20:03:40] gulp-debug: resources/scss/main.scss [20:03:40] gulp-debug: resources/scss/prime-overrides.scss [20:03:40] gulp-debug: 2 items

这里的一切似乎都是正确的。那么为什么会出错?

1 个答案:

答案 0 :(得分:0)

正如斯文在评论中指出的那样。这个问题似乎是由于定义任务函数“sass”引起的。

更改功能名称可解决此问题。

我在src()函数中看到类似的错误,尤其是在加载mainBowerFiles依赖项但未在gulp.src()中正确调用时

如果作为一个原则我们单独编写整个回调并确保传递String或Array数组,那么识别这些问题会更容易。

gulp.task('myTask', myTaskCallback);

// myTaskCallback implementation

function myTaskCallback() {
  return gulp.src() // ensure Glob or array of globs to read.
    .pipe()......
}

在gulp文档中可以找到更多内容。 https://github.com/gulpjs/gulp/blob/v3.9.1/docs/API.md