【问题标题】:Gulp Glob Error on Src()Src() 上的 Gulp Glob 错误
【发布时间】:2016-08-16 18:59:42
【问题描述】:

我正在努力解决应该是一个简单的 gulpfile 修复程序,以使其能够构建 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

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

【问题讨论】:

  • 我不认为 sass 函数采用路径数组。 AFAIK 你应该传递一个带有属性includePaths 的对象,即路径数组。
  • 嗯,我会调查一下,但我认为这可能是最近的变化?在我使用 gulp 的另一个项目中,我将它设置为完全一样,并且它正在工作
  • 你正在重新定义sass
  • 天哪,让我提出这类问题的总是最愚蠢的事情。叹息请将此提升为答案,我会将其标记为正确。这确实是问题:palmface:
  • @SvenSchoenung 明白了!

标签: node.js gulp gulp-sass


【解决方案1】:

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

修改函数名即可解决。

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

如果原则上我们单独编写整个回调并确保 String 或 Array of glob 被传递,则更容易识别此类问题。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-11
    • 2016-03-03
    • 1970-01-01
    相关资源
    最近更新 更多