sourcemaps node commands cannot node.js gulp gulp-sass

node.js - node - Condición de trago dentro de la tubería



node-sass (4)

Si no desea agregar ninguna dependencia adicional, puede confiar en el viejo Elvis (? :) :

g.task(''sass'', function() { return g.src(sources.sass) .pipe(changed(output.css)) .pipe(sass({style:''compressed'', sourcemap:true})) // Conditional output .pipe(condition ? g.dest(output.css) : g.dest(output.css2)) .pipe(notify(''scss converted to css and compressed <%= file.relative %>'')); });

O para casos múltiples:

.pipe(condition1 ? g.dest(output.css) : gulp.util.noop()) .pipe(condition2 ? g.dest(output2.css) : gulp.util.noop())

¿Cómo puedo hacer una condición dentro de Gulp pipe para enviar a un destino diferente?

g.task(''sass'', function() { return g.src(sources.sass).pipe(changed(output.css)).pipe(sass({ style: ''compressed'', sourcemap: true })).pipe(function() { if (..) { g.dest(output.css); } else { g.dest(output.css2); } }).pipe(notify(''scss converted to css and compressed <%=f ile.relative %>'')); });


Te sugiero que utilices la expresión algo como esto:

g.task(''sass'', function(){ var destinationFileName; if (...) { destinationFileName = ''output.css''; } else { destinationFileName = ''output2.css''; } return g.src(sources.sass) .pipe(changed(output.css)) .pipe(sass({style:''compressed'', sourcemap:true})) .pipe(g.dest(destinationFileName)) .pipe(notify(''scss converted to css and compressed <%= file.relative %>'')); });


Utilice el complemento gulp-if :

var gulpif = require(''gulp-if''); g.task(''sass'', function() { return g.src(sources.sass) .pipe(changed(output.css)) .pipe(sass({style:''compressed'', sourcemap:true})) // Conditional output .pipe(gulpif(condition1, g.dest(output.css))) .pipe(gulpif(condition2, g.dest(output.css2))) .pipe(notify(''scss converted to css and compressed <%= file.relative %>'')); });


La solución sin nuevas dependencias:

La función gulp.src devuelve una secuencia, por lo que puede usarla;)
Mira los documentos de la bebida .

gulp.task(''task'', function () { let stream = gulp.src(sources.sass) .pipe(changed(output.css)).pipe(sass({ style: ''compressed'', sourcemap: true })); if (2 + 2 === 4) { stream = stream .pipe(someModule()) .pipe(someModule2()); } else { stream = stream .pipe(someModule3()) .pipe(someModule4()); } stream = stream.pipe(notify(''scss converted to css and compressed'')); return stream; });