title: Gulp.js run tasks in specific order blocking
body: <p>Using <strong>gulp.js</strong> I have three tasks <em>(uglify, buildHTML, rmRevManifest)</em> I'd like to run as part of a parent build task. The code I have works, excepts it runs the tasks in parallel <em>(i.e. order is not preserved)</em>. How can I have the tasks block and not run the next until the previous finishes?</p>
  
  <p>I.E. right now the execution order comes back as:</p>
  
  <pre><code>[11:50:17] gulp-notify: [Gulp notification] Deleted 'rev-manifest.json'.
  [11:50:17] gulp-notify: [Gulp notification] Created 'build/index.html'.
  [11:50:17] gulp-notify: [Gulp notification] Uglified JavaScript.
  </code></pre>
  
  <p>The order matters, and <em>uglify</em> should run first, then <em>buildHTML</em>, and finally <em>rmRevManifest</em>.</p>
  
  <pre><code>gulp.task('build', ['uglify', 'buildHTML', 'rmRevManifest'], function(cb) {
  });
  
  gulp.task('uglify', function(cb) {
      gulp.src('client/js/source/**/*.js')
          .pipe(concat('app'))
          .pipe(ngmin())
          .pipe(uglify())
          .pipe(rev())
          .pipe(rename({
              extname: ".min.js"
          }))
          .pipe(gulp.dest('client/js'))
          .pipe(rev.manifest())
          .pipe(gulp.dest('client/js'))
          .pipe(notify('Uglified JavaScript.'));
  });
  
  gulp.task('buildHTML', function(cb) {
      gulp.src('client/views/index.html')
          .pipe(replace(/app\-[a-fA-F0-9]\.min\.js/, 'app-.min.js'))
          .pipe(gulp.dest('client/build'))
          .pipe(notify('Created \'build/index.html\'.'));
  });
  
  gulp.task('rmRevManifest', function(cb) {
      gulp.src('client/js/rev-manifest.json', { read: false })
          .pipe(rimraf())
          .pipe(notify('Deleted \'rev-manifest.json\'.'));
  });
  </code></pre>