2015-05-06 30 views
7

Tôi đã có các thiết lập sau đây trong gulpfile.js tôi:lỗi Browserify kết thúc ngụm canh nhiệm vụ

gulp.task('browserify', function() { 
    browserify(config.paths.browserifyEntry) 
     .transform(reactify) 
     .bundle() 
     .pipe(source('master.js')) 
     .pipe(gulp.dest(config.paths.dist)) 
     //.pipe(connect.reload()); 
}); 

gulp.task('watch', function() { 
    gulp.watch(config.paths.components, ['browserify']); 
    gulp.watch(config.paths.sassSource, ['sass']); 
}); 

này tất cả các hoạt động hoàn hảo cho đến khi tôi đang viết code mà kết quả trong một lỗi browserify. Điều này xảy ra thường xuyên khi tôi đang chỉnh sửa mã trong một tệp phụ thuộc vào thay đổi mà tôi chưa thực hiện trong một tệp khác, sẽ duyệt lỗi.

Vấn đề là khi trình duyệt lỗi, nó sẽ kết thúc nhiệm vụ đồng hồ. Tôi hy vọng rằng khi trình duyệt lỗi, nó chỉ đơn giản là không hoàn thành nhiệm vụ của nó nhưng đồng hồ sẽ tiếp tục để khi tôi thực hiện các thay đổi khác cho phép trình duyệt để chạy thành công nó sẽ làm như vậy. Có vấn đề khi thực hiện thay đổi và sau đó tải lại trình duyệt và thấy rằng nó không hoạt động chỉ để thấy rằng quá trình xem đã kết thúc do lỗi trình duyệt khi mã của bạn ở trạng thái sai.

Có cách nào để nuốt lỗi đó để nó không dừng quá trình xem không? Hoặc là có một gói npm mà đồng hồ các tập tin và không bị vấp bởi lỗi browserify?

+0

Kiểm tra gulp-plumber: https://www.npmjs.com/package/gulp-plumber – Pierrickouw

Trả lời

8

Nếu bạn không xử lý sự kiện error, luồng sẽ phát. Bạn có thể xử lý các sự kiện trực tiếp:

gulp.task('browserify', function() { 
    browserify(config.paths.browserifyEntry) 
     .transform(reactify) 
     .bundle() 
     .on('error', console.error.bind(console)) 
     .pipe(source('master.js')) 
     .pipe(gulp.dest(config.paths.dist)); 
}); 

Hoặc bạn có thể bắt lỗi sau khi nó ném:

process.on('uncaughtException', console.error.bind(console)); 
+1

Giải pháp thứ hai của bạn là giải pháp duy nhất làm việc cho tôi. Tôi đoán vấn đề tôi gặp phải với trình duyệt là tôi không xem luồng phù hợp. – user3162553

+0

Dòng này đã làm cho tôi: .on ('error', console.error.bind (console)). Gulp thợ sửa ống nước và bất cứ điều gì không làm việc cho tôi, – MartinJH

0

Đối Browserify suối bạn cần phải gọi emit trong xử lý lỗi:

gulp.task('browserify', function() { 
    browserify(config.paths.browserifyEntry) 
    .transform(reactify) 
    .bundle() 
    .on('error', function (error) { 
    console.error(error.toString()) 
    this.emit('end') 
    }) 
    .pipe(source('master.js')) 
    .pipe(gulp.dest(config.paths.dist)); 
}); 
Các vấn đề liên quan