Gulp管道功能最小化?

时间:2014-12-12 05:43:04

标签: node.js gulp

什么是最小的功能,可以放在一个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;乙烯基,通过等

2 个答案:

答案 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(...)),而是将其存储在变量中,然后根据需要使用其他管道对其进行更改,然后最后将其返回。