title: Prevent errors from breaking / crashing gulp watch
body: <p>I'm running gulp 3.6.2 and have the following task that was set up from a sample online</p>
  
  <pre><code>gulp.task('watch', ['default'], function () {
    gulp.watch([
      'views/**/*.html',        
      'public/**/*.js',
      'public/**/*.css'        
    ], function (event) {
      return gulp.src(event.path)
        .pipe(refresh(lrserver));
    });
  
    gulp.watch(['./app/**/*.coffee'],['scripts']);
    gulp.watch('./app/**/*.scss',['scss']);
  });
  </code></pre>
  
  <p>Any time there's an error in my CoffeeScript gulp watch stops - obviously not what I want.</p>
  
  <p><a href="https://github.com/gulpjs/gulp/issues/71" rel="noreferrer">As recommended elsewhere I tried this</a></p>
  
  <pre><code>gulp.watch(['./app/**/*.coffee'],['scripts']).on('error', swallowError);
  gulp.watch('./app/**/*.scss',['scss']).on('error', swallowError);
  function swallowError (error) { error.end(); }
  </code></pre>
  
  <p>but it doesn't seem to work.</p>
  
  <p>What am I doing wrong?</p>
  
  <hr>
  
  <p>In response to @Aperçu's answer I modified my <code>swallowError</code> method and tried the following instead:</p>
  
  <pre><code>gulp.task('scripts', function () {
    gulp.src('./app/script/*.coffee')
      .pipe(coffee({ bare: true }))
      .pipe(gulp.dest('./public/js'))
      .on('error', swallowError);
  });
  </code></pre>
  
  <p>Restarted, and then created a syntax error in my coffee file. Same issue:</p>
  
  <pre><code>[gulp] Finished 'scripts' after 306 μs
  
  stream.js:94
        throw er; // Unhandled stream error in pipe.
              ^
  Error: W:\bariokart\app\script\trishell.coffee:5:1: error: unexpected *
  *
  ^
    at Stream.modifyFile (W:\bariokart\node_modules\gulp-coffee\index.js:37:33)
    at Stream.stream.write (W:\bariokart\node_modules\gulp-coffee\node_modules\event-stream\node_modules\through\index.js:26:11)
    at Stream.ondata (stream.js:51:26)
    at Stream.EventEmitter.emit (events.js:95:17)
    at queueData (W:\bariokart\node_modules\gulp\node_modules\vinyl-fs\node_modules\map-stream\index.js:43:21)
    at next (W:\bariokart\node_modules\gulp\node_modules\vinyl-fs\node_modules\map-stream\index.js:71:7)
    at W:\bariokart\node_modules\gulp\node_modules\vinyl-fs\node_modules\map-stream\index.js:85:7
    at W:\bariokart\node_modules\gulp\node_modules\vinyl-fs\lib\src\bufferFile.js:8:5
    at fs.js:266:14
    at W:\bariokart\node_modules\gulp\node_modules\vinyl-fs\node_modules\graceful-fs\graceful-fs.js:104:5
    at Object.oncomplete (fs.js:107:15)
  </code></pre>