JavaScript   发布时间:2022-04-16  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了gulp-notify和gulp-plumber处理错误大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我想在以下情况下显示通知:
发生错误
当脚本成功执行时

所有通知实际上正在工作,但是即使发生错误,也会始终显示成功通知.

如果没有发生错误,我如何才能确定成功通知是否显示?

这是我现在的任务:

var gulp = require('gulp');
var sass = require('gulp-ruby-sass');
var rename = require('gulp-rename');
var notify = require('gulp-notify');
var plumber = require('gulp-plumber');
var minifycss = require('gulp-minify-css');
var autoprefixer = require('gulp-autoprefixer');

gulp.task('sass',function(){
   return gulp.src('assets/scss/global.scss')
       .pipe(plumber({errorHandler: notify.onError("Error: <%= error.message %>")}))
       .pipe(sass({ style: 'expanded' }))
       .pipe(autoprefixer())
       .pipe(gulp.dest('assets/css/'))
       .pipe(rename({suffix: '.min'}))
       .pipe(minifycss())
       .pipe(gulp.dest('assets/css/'))
       .pipe(notify({
           title: 'Gulp',subtitle: 'success',message: 'Sass task',sound: "Pop"
       }));
});

gulp.task('watch',function(){
   gulp.watch('assets/scss/**/*.scss',['sass']);
});

gulp.task('default',['sass','watch']);

解决方法

我遇到了同样的问题,对我来说有用的是gulp-if和一个自定义错误处理程序.基本上我设置errorFree = false当一个错误被抛出,然后在最后,当它的时候显示成功消息我使用gulp-if来确定是否调用了notify().

使用你的gulpfile:

var gulp = require('gulp');
var sass = require('gulp-ruby-sass');
var rename = require('gulp-rename');
var notify = require('gulp-notify');
var plumber = require('gulp-plumber');
var minifycss = require('gulp-minify-css');
var autoprefixer = require('gulp-autoprefixer');

gulp.task('sass',function(){

    var onError = function(err) {
        notify.onError({
                    title:    "Gulp",subtitle: "Failure!",message:  "Error: <%= error.message %>",sound:    "Beep"
                })(err);

        this.emit('end');
    };

   return gulp.src('assets/scss/global.scss')
       .pipe(plumber({errorHandler: onError}))
       .pipe(sass({ style: 'expanded' }))
       .pipe(autoprefixer())
       .pipe(gulp.dest('assets/css/'))
       .pipe(rename({suffix: '.min'}))
       .pipe(minifycss())
       .pipe(gulp.dest('assets/css/'))
       .pipe(notify({ // Add gulpif here
           title: 'Gulp','watch']);

在我的gulp文件中,我实际上将grp中的每一步包装起来,如果这样,流停止处理. (我没有找到一种方法来阻止流程,而不会杀死进程,这违反了IMO的目的).

大佬总结

以上是大佬教程为你收集整理的gulp-notify和gulp-plumber处理错误全部内容,希望文章能够帮你解决gulp-notify和gulp-plumber处理错误所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。