我正在创建一个在某些情况下可能会失败的 gulp 任务.
gulp.task('favicon', function () {尝试 {require('child_process').execSync('icotool --version');} 捕捉( e ) {var err = new Error('生成 favicon 需要 Unix bash 和 icotool');抛出错误;}返回 gulp.src('', {read: false}).管道(外壳(['./generate-favicon.sh']));});当通过 gulp 运行我的任务并遇到错误时,该错误将呈现得相当难看.我想以一种方式呈现错误,例如,jslint gulp-util 的 PluginError.
它实际上只是在其中创建一个 PluginError 并抛出它,但这似乎不太正确.另一个不太好的解决方案是设置
err.showStack = false;至少有更好的错误输出.gulp.task.Error 会很好.
据我所知,从 gulp 中抛出错误并不是很好.但是我发现了这个我曾经为我工作的博客条目.
http://gotofritz.net/博客/geekery/how-to-generate-error-in-gulp-task/
编辑:gulp-util已弃用.相反,请使用 plugin-error 包.p>
我的例子:
var gulp = require('gulp');var error = require('plugin-error');gulp.task('部署',函数(cb){if(typeof(specialId) === '未定义') {var err = new PluginError({插件:'部署',消息:'specialId 为空.'});}}I am creating a gulp task which might fail under certain circumstances.
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'
]));
});
When running my task via gulp and running into the error, the error will be presented rather ugly.
I would like to present the error in a way as it is done by e.g. jslint gulp-util's PluginError.
It actually works to just create a PluginError there and throw it but that doesn't seem quite right.
Another solution not that nice would be to set
err.showStack = false;
for at least a little nicer error output. A gulp.task.Error would be nice.
From what I've seen its not great to throw an error from gulp. But I found this blog entry that I used to work for me.
http://gotofritz.net/blog/geekery/how-to-generate-error-in-gulp-task/
Edit: gulp-util has been deprecated. Instead, use the plugin-error package.
My Example:
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.'
});
}
}
这篇关于在 gulp 任务中很好地抛出错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!
Browserify,Babel 6,Gulp - 传播运算符上的意外令牌Browserify, Babel 6, Gulp - Unexpected token on spread operator(Browserify,Babel 6,Gulp - 传播运算符上的意外令牌)
是否可以将标志传递给 Gulp 以使其以不同的方式Is it possible to pass a flag to Gulp to have it run tasks in different ways?(是否可以将标志传递给 Gulp 以使其以不同的方式运行任务
为什么我们需要在全局和本地安装 gulp?Why do we need to install gulp globally and locally?(为什么我们需要在全局和本地安装 gulp?)
如何一个接一个地依次运行 Gulp 任务How to run Gulp tasks sequentially one after the other(如何一个接一个地依次运行 Gulp 任务)
由于 MIME 类型而未加载样式表Stylesheet not loaded because of MIME-type(由于 MIME 类型而未加载样式表)
打开 Javascript 文件时 Visual Studio 2015 崩溃Visual Studio 2015 crashes when opening Javascript files(打开 Javascript 文件时 Visual Studio 2015 崩溃)