在此示例中,它声明您可以使用 Gulp-Plumber 和 Gulp-Notify 在每次出现错误时显示消息和声音。Gulp-Plumber 将确保 Gulp watch 将继续运行。
但是,当我尝试它时,我不断收到此错误消息,这导致 Gulp 停止:
events.js:72
throw er; // Unhandled 'error' event
这是我的代码:
var gulp = require('gulp'),
sass = require('gulp-ruby-sass'),
jshint = require('gulp-jshint'),
uglify = require('gulp-uglify'),
rename = require('gulp-rename'),
concat = require('gulp-concat'),
notify = require('gulp-notify'),
plumber = require('gulp-plumber'),
var onError = function(err) {
notify.onError({
title: "Gulp",
subtitle: "Failure!",
message: "Error: <%= error.message %>",
sound: "Beep"
})(err);
this.emit('end');
};
//Scripts Task
gulp.task('scripts', function() {
gulp.src('frontend/build/js/*.js')
.pipe(jshint('.jshintrc'))
.pipe(jshint.reporter('default'))
.pipe(concat('main.js'))
.pipe(gulp.dest('frontend/dist/js'))
.pipe(rename({suffix: '.min'}))
.pipe(uglify())
.pipe(gulp.dest('frontend/dist/scripts'))
.pipe(notify({
sound: "Frog"
}));
});
//Styles Task
gulp.task('styles', function() {
return sass('frontend/build/scss/', {style: 'expanded'})
.pipe(plumber({errorHandler: onError}))
.pipe(gulp.dest('frontend/dist/css/'))
.pipe(rename({suffix: '.min'}))
.pipe(gulp.dest('dist/styles'))
.pipe(notify({ // Add gulpif here
sound: "Pop"
}));
});
我的代码和示例之间的唯一区别是我将 onError 作为全局函数移动,因此它可以在脚本和样式任务中使用。但是,即使我将其移回样式函数中,也会出现相同的错误消息。
(我发布的代码是缩写的,完整的代码可以在这里找到)
另外,有没有办法隐藏成功的通知消息,所以我只听到声音?谢谢!