title: Gulp workflow for validation and es 6
body: <p>I'm new to Gulp and the concept of task runners. I am wanting to write some javascript using es6 and have gulp run it through jscs, jshint and finally use babel to convert it to es5.</p>
  
  <p>The part I'm confused about is the order I should have these tasks in my gulp pipeline. If I run jshint first I get warnings about how I can't use let and arrow functions. However, if I convert my code using babel first the babel output then fails validation as well. </p>
  
  <p>What I'm looking for is a correct way of ordering my gulp task so it validates and converts my code to es5.</p>
  
  <p>This is my current gulp task.</p>
  
  <pre><code>gulp.task('js-validation', function() {
  $.util.log('**Starting js validation**');
  
  return gulp
      .src(config.alljs)
      .pipe($.print())
      .pipe($.jshint())
      .pipe($.jscs())
      .pipe($.babel())
      .pipe($.jshint.reporter('jshint-stylish', {verbose: true}))
      .pipe($.jshint.reporter('fail'))
      .pipe(gulp.dest(config.temp));
  </code></pre>
  
  <p>});</p>