我有一个任务,它依赖于以前的任务,该任务合并多个流并返回结果流。依赖于它的任务似乎从来没有执行过。
这是我的依赖:
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任务将在流完成时运行。我做了什么错事来阻止这一切的发生?
编辑:,问题似乎是css:minify任务的ace和css部分中的concat (因为如果我注释掉这些行,一切正常),但我仍然不明白为什么它会阻止任务的工作。
发布于 2016-11-22 15:04:00
事实证明,这个问题与gulp-merge有关。当我将它改为使用merge-stream时,一切都如愿以偿。
https://stackoverflow.com/questions/40742619
复制相似问题