我正在敲打我应该对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
这里的一切似乎都是正确的。那么为什么会出错?
答案 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