イナヅマTVログ

Gulp 始めてみましたのメモ – 4 – taskを順に実行

| 0件のコメント

gulp task を並列に動かしたり直列に実行します。
Gulp 始めてみましたのメモ – 1 – 導入からCompass
Gulp 始めてみましたのメモ – 2 – CSSをminify
Gulp 始めてみましたのメモ – 3 – JavaScriptをconcat, minify, source mapとYUIDoc
の続き。

task 実行 – 並列

並列に実行は基本機能なのでなにも考えずに実現可能です。

"use strict";
 
var gulp = require( 'gulp' );
 
gulp.task( 'task-a', function () {
  // なんか
} );
gulp.task( 'task-b', function () {
  // なんか
} );
gulp.task( 'task-c', function () {
  // なんか
} );
gulp.task( 'task-d', function () {
  // なんか
} );
gulp.task( 'task-e', function () {
  // なんか
} );

task を登録し実行します。

gulp.task( 'task-all', [
  'task-a',
  'task-b',
  'task-c',
  'task-d',
  'task-e'
] );

terminal

gulp task-all

task-a, task-b, task-c, task-d, task-e が走り出します。

task 実行 – 直列

task-a が終了したら task-b を走らせる。
promise / deferred みたいなことをどうするかです。

ガリゴリ書くことも可能ですが便利なプラグインがありました。

run-sequence

run-sequence

Run a series of dependent gulp tasks in order

var runSequence = require('run-sequence');
gulp.task( 'pc-init', function ( callback ) {
 
  runSequence(
    [
      'task-a',
      'task-b'
    ],
    'task-c'
    [
      'task-d',
      'task-e'
    ],
    callback
  );
 
} );

task-a, task-b は並列に実行されます。
どちらも終了すると task-c が実行され終了すると task-d, task-e が実行されます。

promise / deferred なことを run-sequence が受け持ってくれます。
便利ー

コメントを残す

必須欄は * がついています