Ho un'attività che dipende da un'attività precedente che unisce più flussi e restituisce il flusso risultante. Il compito da cui dipende non sembra mai essere eseguito.
Questa è la mia dipendenza:
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);
});
Il compito che li utilizza è il seguente:
gulp.task("test", ["css:minify"], function () {
console.log("testing");
});
Ottengo il seguente risultato:
[14:32:53] Starting "css:minify"...
css minification in progress
Process terminated with code 0.
Il css:minify
l'attività non segnala mai che è stata completata e il file test
l'attività non registra mai nulla sulla console. La mia aspettativa era che la dipendenza avrebbe restituito un flusso e che il file test
l'attività verrà eseguita al termine del flusso. Che cosa ho fatto di sbagliato che impedisce che ciò accada?
Modificare: sembra che il problema sia il concat
all'interno del ace
e css
sezioni del css:minify
compito (perché se commento queste righe tutto funziona correttamente), ma non riesco ancora a capire perché impedisce all'attività di funzionare.
risposte:
0 per risposta № 1Si scopre che il problema aveva a che fare con gulp-merge
. Quando l'ho cambiato invece di usarlo merge-stream
tutto ha funzionato come previsto.