在 gulp 任务中很好地抛出错误

Nicely throwing an error in gulp task(在 gulp 任务中很好地抛出错误)
本文介绍了在 gulp 任务中很好地抛出错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在创建一个在某些情况下可能会失败的 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 任务中很好地抛出错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Update another component when Formik form changes(当Formik表单更改时更新另一个组件)
Formik validation isSubmitting / isValidating not getting set to true(Formik验证正在提交/isValiating未设置为True)
React Validation Max Range Using Formik(使用Formik的Reaction验证最大范围)
Validation using Yup to check string or number length(使用YUP检查字符串或数字长度的验证)
Updating initialValues prop on Formik Form does not update input value(更新Formik表单上的初始值属性不会更新输入值)
password validation with yup and formik(使用YUP和Formick进行密码验证)