2015-04-19 4 views
7

Я создаю задачу глотки, которая может сбой при определенных обстоятельствах.Замечательная ошибка при выполнении задачи 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' 
    ])); 
}); 

При выполнении моей задачи через gulp и запуске в ошибке ошибка будет представлена ​​довольно уродливо. Я хотел бы представить ошибку так, как это делается, например, jslint gulp-util PluginError.

Это действительно работает, чтобы просто создать там PluginError и бросить его, но это не кажется совершенно правильным. Еще одно решение не то, что приятно было бы установить

err.showStack = false; 

, по крайней мере, немного лучше вывод ошибок. A gulp.task.Error было бы здорово.

ответ

9

Из того, что я видел, это не так, чтобы вызывать ошибку из глотка. Но я нашел эту запись в блоге, которую я работал для меня.

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

Edit: 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

Великий, кажется, что я искал. Это сообщение в блоге только что появилось через несколько дней после моего первоначального вопроса :) –

Смежные вопросы