2015-04-19 19 views
7

Sto creando un compito ingannevole che potrebbe fallire in determinate circostanze.Bel lancio di un errore nel task 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' 
    ])); 
}); 

Quando si esegue il mio compito tramite gulp e si esegue l'errore, l'errore verrà presentato piuttosto brutto. Vorrei presentare l'errore in un modo come è fatto ad es. jslint gulp-util's PluginError.

In realtà funziona solo per creare uno PluginError lì e lanciarlo ma non sembra proprio giusto. Un'altra soluzione non così bella sarebbe quella di impostare

err.showStack = false; 

per almeno un po 'più bello output degli errori. A gulp.task.Error sarebbe bello.

risposta

9

Da quello che ho visto non è grandioso lanciare un errore da Gulp. Ma ho trovato questo post di blog che ero abituato a lavorare per me.

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

Edit: gulp-util has been deprecated. Utilizzare invece the plugin-error package.

il mio esempio:

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

Grande, sembra che cercavo. Quel post sul blog è appena uscito qualche giorno dopo la mia domanda originale :) –

Problemi correlati