【问题标题】:gulp - combine multiple transformations into one [duplicate]gulp - 将多个转换合并为一个[重复]
【发布时间】:2017-03-13 10:10:54
【问题描述】:

我说,我有两个 gulp 任务:

gulp.task('pug', function () {
  return gulp.src('src/**/*.pug')
    .pipe(cache(pug()))
    // ---- begin ---
    .pipe(some_action1())
    .pipe(some_action2())
    .pipe(some_action3());
    // ---- end ---
});

gulp.task('html', function () {
  return gulp.src('src/**/*.html')
    // ---- begin ---
    .pipe(some_action1())
    .pipe(some_action2())
    .pipe(some_action3());
    // ---- end ---
});

some_action1/2/3 的代码克隆让我很伤心。所以我想将它们更改为:

all_actions = /* do some_action1, some_action2, and, some_action3 */({/* ??? */});

gulp.task('pug', function () {
  return gulp.src('src/**/*.pug')
    .pipe(cache(pug()))
    .pipe(all_actions());
});

gulp.task('html', function () {
  return gulp.src('src/**/*.html')
    .pipe(all_actions());
});

gulp 的方法是什么?如何做到这一点?

【问题讨论】:

    标签: gulp


    【解决方案1】:

    您可以使用管道和全部提取任务功能并使用gulp-merge调用它,我们可以通过以下方式合并两组管道::

    merge(pipes_1, pipes_2)
    

    代码

    var gulpMerge = require('gulp-merge');
    
    gulp.task('pug', function () {
    
        return gulpMerge(gulp.src('src/**/*.pug')
            .pipe(cache(pug())), allActions('src/**/*.pug'));
    });
    
    gulp.task('html', function () {
    
        return allActions('src/**/*.pug');
    });
    
    
    function allActions(source){
        return gulp.src(source)
            // ---- begin ---
            .pipe(some_action1())
            .pipe(some_action2())
            .pipe(some_action3());
            // ---- end ---
    }
    

    此外,您可以保持任务的粒度,而不是组合管道,通过从所有操作任务中调用它们作为依赖任务来保持它们的小而专业。

    假设您有 task_1、task_2 和 task_3。假设任务:someActions 需要 task_1 和 task_2,而任务 allActions 需要所有三个任务。然后你可以:

    gulp.task('someActions', ['task_1', 'task_2']);
    
    gulp.task('allActions', ['task_1', 'task_2', 'task_3']);
    

    【讨论】:

      猜你喜欢
      • 2017-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多