2015-04-19 10 views
7

मैं एक शानदार कार्य बना रहा हूं जो कुछ परिस्थितियों में विफल हो सकता है।अच्छी तरह से गल्प कार्य में त्रुटि फेंकना

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

जब मेरा कार्य गलप के माध्यम से चल रहा है और त्रुटि में चल रहा है, तो त्रुटि बदसूरत दिखाई देगी। मैं त्रुटि को एक तरह से प्रस्तुत करना चाहता हूं जैसा कि यह किया जाता है उदा। jslint gulp-util's PluginError

यह वास्तव में केवल PluginError बनाने और इसे फेंकने के लिए काम करता है लेकिन यह बिल्कुल सही नहीं लगता है। एक अन्य समाधान है कि अच्छा नहीं कम से कम एक छोटे से अच्छे त्रुटि उत्पादन के लिए

err.showStack = false; 

स्थापित करने के लिए किया जाएगा। एक gulp.task.Error अच्छा होगा।

उत्तर

9

जो मैंने देखा है उससे गलती से कोई त्रुटि फेंकना अच्छा नहीं है। लेकिन मुझे यह ब्लॉग एंट्री मिली जो मैं अपने लिए काम करता था।

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

संपादित: gulp-util has been deprecated। इसके बजाय, the plugin-error package का उपयोग करें।

मेरे उदाहरण:

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

बढ़िया है, जैसे मैं के लिए देख रहा था लगता है। वह ब्लॉग पोस्ट मेरे मूल प्रश्न के कुछ दिनों बाद आया था :) –

संबंधित मुद्दे