我有一个任务,它依赖于先前的任务,它合并多个流并返回结果流。依赖于它的任务似乎永远不会运行。
这是我的依赖:
var gulp = require('gulp');
var concat = require('gulp-concat');
var sourcemaps = require('gulp-sourcemaps');
var less = require('gulp-less');
var minifyCss = require('gulp-minify-css');
var merge = require('gulp-merge');
var cached = require('gulp-cached');
gulp.task('css:minify', function () {
var bootstrapLess = gulp.src(['plugins/bootstrap/less/bootstrap.less'])
.pipe(cached('bootstrap less'))
.pipe(less())
.pipe(gulp.dest('plugins/bootstrap/less/'));
var aceLess = gulp.src(['plugins/ace-admin/less/ace.less'])
.pipe(cached('ace less'))
.pipe(less())
.pipe(gulp.dest('plugins/ace-admin/less/'));
var ace = gulp.src(files.css.ace)
.pipe(cached('ace min'))
.pipe(sourcemaps.init())
.pipe(minifyCss())
.pipe(concat('aes.ace.min.css'))
.pipe(sourcemaps.write('./'))
.pipe(gulp.dest('Content/'));
var css = gulp.src(files.css.all)
.pipe(cached('aes.min'))
.pipe(sourcemaps.init())
.pipe(minifyCss())
.pipe(concat('aes.all.min.css'))
.pipe(sourcemaps.write('./'))
.pipe(gulp.dest('Content/'));
console.log('css minification in progress');
return merge(bootstrapLess, aceLess, ace, css);
});
使用它们的任务如下:
gulp.task('test', ['css:minify'], function () {
console.log('testing');
});
我得到以下输出:
[14:32:53] Starting 'css:minify'...
css minification in progress
Process terminated with code 0.
css:minify
任务从不报告它已完成,test
任务从不向控制台记录任何内容。我的期望是依赖项将返回一个流,并且当流完成时test
任务将运行。我做错了什么阻止了这种情况发生?
修改:问题似乎是concat
任务的ace
和css
部分中的css:minify
(因为如果我注释掉那些线条一切正常),但我仍然无法理解为什么它阻止任务工作。
答案 0 :(得分:0)
事实证明,这个问题与gulp-merge
有关。当我将其更改为使用merge-stream
时,一切都按预期工作。