Gulp:在返回最终管道之前,我可以将管道的不同部分存储在变量中吗?
我需要建立一个吞咽管道,可能有条件地包括某些步骤。比如说,我想在文件顶部添加一个头,用于生产,但不用于开发环境,或者类似的东西。是否可以构建管道的第一个公共部分,将其存储在变量中,然后检查特定条件,并根据其构建管道的其余部分,如下所示:Gulp:在返回最终管道之前,我可以将管道的不同部分存储在变量中吗?,gulp,Gulp,我需要建立一个吞咽管道,可能有条件地包括某些步骤。比如说,我想在文件顶部添加一个头,用于生产,但不用于开发环境,或者类似的东西。是否可以构建管道的第一个公共部分,将其存储在变量中,然后检查特定条件,并根据其构建管道的其余部分,如下所示: function buildCSS() { var processors = [ atImport, cssnano ]; var stylesTargetDirectory = path.join(gl
function buildCSS() {
var processors = [
atImport,
cssnano
];
var stylesTargetDirectory = path.join(global.paths.buildDirectory, 'styles')
var lessToCss = gulp.src(global.paths.lessMain)
.pipe(less({
paths: [ global.paths.stylesDirectory ]
}))
.pipe(postcss(processors))
var result = foo === 'bar' ? // a condition I am checking for
lessToCss.pipe(header('hello world') // this is gulp-header
.pipe(gulp.dest(stylesTargetDirectory)) :
lessToCss
.pipe(gulp.dest(stylesTargetDirectory))
return result;
}
它可以很好地用于单个任务,但我只是有点害怕当我开始组合任务时它会咬我。这种动态构建管道的方法看起来太好了,不可能是真的,因为如果它是正确的,那么我不理解使用gulpif
或lazypipe
的目的。如果可能的话,我宁愿避免,因为他们脾气暴躁,破坏了我的任务
你觉得怎么样?如果()的话,你可以试着喝一口。它要么将您的流传递到所需的任务,要么跳过并传递到下一个任务。更多信息,请参见他们的示例