2016-01-21 48 views
2

我正在編寫一個吞噬任務來瀏覽,將我的較少文件編譯爲css並運行gulp-webserver。在客戶端,我使用了React 0.14。在browserify中發現任何錯誤的那一刻,我的吞嚥手錶崩潰。每次我必須停止監視任務並再次運行它。如何避免這種情況?我的意思是如果發現一個錯誤,並且如果我修復了這個錯誤,我怎麼能再次運行browserify任務而不讓我的手錶崩潰。如果我在browserify中遇到錯誤,如:關閉的JSX標記丟失......並且一旦我修復了錯誤,如何阻止我的手錶崩潰。如果發現任何錯誤,Gulp手錶會崩潰

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') 
}) 

回答

0

在你的錯誤處理方法補充一點:

this.emit('end')

+1

想這太....它仍然停止中旬方式 –

+0

你確定嗎?這是我的gulp文件之一,它完美的作品:https://github.com/mijamo/React-cartographer/blob/master/gulpfile.js(看看rebundle函數) – Mijamo

+1

是的...一旦我得到一些錯誤...我必須重新執行任務 –

相關問題