【发布时间】: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 明白了!