如果发现任何错误,Gulp手表会在两者之间崩溃

时间:2016-01-21 05:33:18

标签: gulp gulp-watch

我正在编写一个gulp任务来浏览,将较少的文件编译成css并运行gulp-webserver。在客户端,我使用React 0.14。在browserify中发现任何错误的那一刻,我的gulp手表崩溃了。每次我必须停止监视任务并再次运行它。怎么避免这个?我的意思是如果发现错误,如果我修复错误,我怎么能再次运行browserify任务而不会让我的手表崩溃。如果我在browserify中遇到错误,例如:关闭的JSX标签丢失......一旦我修复错误,如何阻止我的手表崩溃。

var gulp        = require('gulp');
var browserify  = require('browserify');
var babelify    = require("babelify");
var source      = require('vinyl-source-stream');
var plugins     = require('gulp-load-plugins')();
var runSequence = require('run-sequence');
var watchLess   = require('gulp-watch-less');
var domain      = require("domain");

gulp.task('webserver', function(){
    gulp.src('./')
    .pipe(plugins.webserver({
      fallback   : 'index.html',
      host       : 'localhost',
      livereload : {
        enable : true
      },
      open       : true
    }))
})

gulp.task('browserify', function(){
  console.log('Browserifying ...');
    return browserify({
    entries : ['./js/index.js'],
    debug   : true
  })
  .transform('babelify', {presets: ['es2015', 'react']})
  .bundle()
  .on('error', function(err) {
    console.log('Error:', err);
  })
  .pipe(source('bundle.js'))
  .pipe(gulp.dest('./'))
})

gulp.task('build-css', function(){
  return gulp.src('./less/**/*.less')
    .pipe(plugins.less())
    .pipe(gulp.dest('./css'))
})

gulp.task('build', function() {
  runSequence(
    ['build-css'], ['browserify'], ['webserver'], ['watch']
  );
});

gulp.task('watch', function(){
  gulp.watch('./js/*.js',['browserify'])
  gulp.watch('./less/**/*.less',['build-css'])
  gulp.watch('./css/**/*.css')
})

1 个答案:

答案 0 :(得分:0)

在错误处理方法中添加:

this.emit('end')