2015-04-19 19 views
7

Tôi đang tạo một tác vụ gulp có thể bị lỗi trong một số trường hợp nhất định.Độc đáo ném một lỗi trong nhiệm vụ gulp

gulp.task('favicon', function() { 
    try { 
    require('child_process').execSync('icotool --version'); 
    } catch(e) { 
    var err = new Error('Unix bash and icotool required for generating favicon'); 
    throw err; 
    } 

    return gulp.src('', {read: false}) 
    .pipe(shell([ 
     './generate-favicon.sh' 
    ])); 
}); 

Khi chạy tác vụ qua gulp và gặp lỗi, lỗi sẽ được trình bày khá xấu. Tôi muốn trình bày lỗi theo cách được thực hiện bằng ví dụ: jslint gulp-util PluginError.

Nó thực sự hoạt động chỉ để tạo ra một PluginError ở đó và ném nó nhưng điều đó dường như không hoàn toàn đúng. Một giải pháp khác không tốt đẹp sẽ là đặt

err.showStack = false; 

cho ít nhất một đầu ra lỗi đẹp hơn một chút. A gulp.task.Error sẽ rất tuyệt.

Trả lời

9

Từ những gì tôi thấy không tuyệt vời để ném lỗi từ gulp. Nhưng tôi tìm thấy mục blog này mà tôi đã từng làm việc cho tôi.

http://gotofritz.net/blog/geekery/how-to-generate-error-in-gulp-task/

Sửa: gulp-util has been deprecated. Thay vào đó, hãy sử dụng the plugin-error package.

My Ví dụ:

var gulp = require('gulp'); 
var error = require('plugin-error'); 
gulp.task('deploy', function(cb) { 
    if(typeof(specialId) === 'undefined') { 
    var err = new PluginError({ 
     plugin: 'deploy', 
     message: 'specialId is empty.' 
    }); 
    } 
} 
+0

Tuyệt vời, có vẻ như tôi đang tìm kiếm. Bài đăng trên blog đó vừa xuất hiện một vài ngày sau câu hỏi ban đầu của tôi :) –

Các vấn đề liên quan