管道内的吞咽状况
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了管道内的吞咽状况相关的知识,希望对你有一定的参考价值。
如何在Gulp管道中执行输出到不同目的地的条件。
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 %>'));
});
答案
使用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 %>'));
});
另一答案
没有任何新依赖项的解决方案:
gulp.src
函数返回一个流,所以你可以使用它;)
看看gulp docs。
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;
});
另一答案
我建议你使用这样的表达式:
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 %>'));
});
另一答案
如果你不想添加任何额外的依赖,你可以相信好老的猫王(?:):
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 %>'));
});
或者针对多种情况:
.pipe(condition1 ? g.dest(output.css) : gulp.util.noop())
.pipe(condition2 ? g.dest(output2.css) : gulp.util.noop())
以上是关于管道内的吞咽状况的主要内容,如果未能解决你的问题,请参考以下文章
如何通过单击片段内的线性布局从片段类开始新活动?下面是我的代码,但这不起作用