我希望在以下情况下显示通知:
1.发生错误
2.脚本成功执行后
所有通知实际上都在工作,但即使出现错误,也会始终显示成功通知.
如何确保仅在未发生错误时显示成功通知?
这是我目前的任务:
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']);
Run Code Online (Sandbox Code Playgroud)
Jef*_*fwa 19
我遇到了同样的问题,对我有用的是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',
subtitle: 'success',
message: 'Sass task',
sound: "Pop"
}));
});
gulp.task('watch', function(){
gulp.watch('assets/scss/**/*.scss', ['sass']);
});
gulp.task('default', ['sass', 'watch']);
Run Code Online (Sandbox Code Playgroud)
在我的gulpfile中,我实际上将每一步都包装起来,gulp-if以便流停止处理.(我没有找到一种方法来阻止流而不会破坏流程,这会使观看IMO失败的目的.)
| 归档时间: |
|
| 查看次数: |
9630 次 |
| 最近记录: |