什么是最小的功能,可以放在一个Gulp管道,仍然有效?
这不起作用:
gulp.src('**')
.pipe(function() {
// what's the minimum that can go here and still be a functional pipe?
// what needs to be returned?
});
理想情况下,这只是使用Gulp构建的基础模块的vanilla JS;乙烯基,通过等
答案 0 :(得分:11)
管道的问题在于你丢弃了glob的文件,因为你没有返回它们。
使用through2,您可以执行以下操作:
const through = require('through2')
gulp.src('**')
.pipe(through.obj((file, enc, cb) => cb(null, file)))
答案 1 :(得分:0)
是的,已经4年了,但是我想我一直在寻找解决方案,因为我一直在寻找相同的答案。
我想要一些简单的模块化pipe
函数,这些函数可以在一些不同的任务中重用,而不会产生过多的依赖关系。这可能不是一个很好的解决方案,但它可以起作用:
const gulp = require('gulp');
var someFlag = true;
gulp.task('default', doTask);
function doTask(done) {
let stream = gulp.src(['file.txt'])
.pipe(/* some gulp plugin here */);
if (someFlag) {
stream = alterStream(stream);
}
return stream;
}
function alterStream(stream) {
stream.pipe(/* another gulp plugin here */);
return stream;
}
不是将流直接首先返回(return gulp.src(...)
),而是将其存储在变量中,然后根据需要使用其他管道对其进行更改,然后最后将其返回。