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

如果发现任何错误,Gulp watch会在两者之间崩溃,gulp,gulp-watch,Gulp,Gulp Watch,我正在编写一个gulp任务来浏览,将我的less文件编译成css,并运行一个gulpwebserver。在客户端,我使用React 0.14。一旦在browserify中发现任何错误,我的gulp手表就会崩溃。每次我都必须停止监视任务并再次运行它。如何避免这种情况?我的意思是,如果发现错误并修复了错误,我如何再次运行browserify任务而不使手表崩溃。如果我在browserify中遇到一个错误,比如:关闭JSX标记丢失……一旦我修复了错误,如何阻止我的手表崩溃 var gulp

我正在编写一个gulp任务来浏览,将我的less文件编译成css,并运行一个gulpwebserver。在客户端,我使用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')
})

在错误处理方法中添加以下内容:


this.emit('end')

您确定吗?这是我的一个gulp文件,它工作得很好:(看看reundle函数)是的。。。一旦出现错误,我必须重新运行任务