2017-03-13 5 views
0

に複数の変換を組み合わせる:some_action1/2/3用一息 - 私は2つの一気タスク持って、私が言ってみましょう1

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 --- 
}); 

コードクローンは、私はとても悲しいことができます。だから私のようなものに変更したい:

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()); 
}); 

一気そうするための方法、およびどのように何ですか?

答えて

0

あなたはパイプとタスク機能を抽出し、すべての私たちは::

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 --- 
} 
によってパイプの2セットをマージすることができ gulp-mergeを使用して、それを呼び出すことができます

さらに、パイプを結合する代わりに、タスクの細分性を維持し、すべてのアクションタスクから依存タスクとして呼び出すことで、それらを小さく特殊化することができます。

task_1、task_2、およびtask_3があるとします。そのタスク:someActionsにはtask_1とtask_2が必要で、タスクallActionsには3つのタスクがすべて必要です。次に、あなたは:

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

gulp.task('allActions', ['task_1', 'task_2', 'task_3']); 
関連する問題