Gulp - 如何将使用不同src的任务或流链接在一起?

时间:2016-08-05 23:16:48

标签: gulp

我想在流中执行所有操作,但是从多个来源然后在最后部署所有操作,如何在同一任务中或通过组合任务在gulp中执行此操作?

例如:

return gulp.src('/dir1/*.js')
  .pipe(..)
  .pipe(..)
  .gulp.src('/dir2/*.css') 
  .pipe(gif('some-particular-file.css', xxx))
  .pipe(gulp.dest(''));

还让我补充一点,我不想像这样过滤:

   gulp.src(['/dir1/*.js', '/dir2/*.css'])
       .pipe(gif(*.js, xxx)
       .pipe(gif(*.css, xxx)
       .gulp.dest('appy'));

2 个答案:

答案 0 :(得分:1)

您可以使用merge-stream

gulp.task('test', function() {
  var bootstrap = gulp.src('bootstrap/js/*.js')
    .pipe(gulp.dest('public/bootstrap'));

  var jquery = gulp.src('jquery.cookie/jquery.cookie.js')
    .pipe(gulp.dest('public/jquery'));

  return merge(bootstrap, jquery);
});

来源:Using multiple sources in one task

答案 1 :(得分:1)

gulp 3.x

使用gulp-add-src包:

var addSrc = require('gulp-add-src');

return gulp.src('/dir1/*.js')
  .pipe(..)
  .pipe(..)
  .pipe(addSrc('/dir2/*.css')) 
  .pipe(gif('some-particular-file.css', xxx))
  .pipe(gulp.dest(''));

gulp 4.x

使用passthrough option

gulp.src()可以充当直通流:

return gulp.src('/dir1/*.js')
  .pipe(..)
  .pipe(..)
  .pipe(gulp.src('/dir2/*.css', {passthrough:true})) 
  .pipe(gif('some-particular-file.css', xxx))
  .pipe(gulp.dest(''));