gulp-ruby-sass 1.0.0-alpha、gulp-notify 和浏览器同步的错误处理

Error handling with gulp-ruby-sass 1.0.0-alpha, gulp-notify, and browser-sync

我一直在使用 `gulp-ruby-sass@1.0.0-alpha' 因为 < 1.0 不能很好地与 Sass > = 3.4 根据文档:

gulp-ruby-sass throws errors like a gulp plugin, but streams the erroring files so you can see the errors in your browser.

我使用 gulp-notify 来处理此代码的错误,它给我一个弹出通知,让我知道出了点问题。

.on('error', notify.onError({
    title: 'Error!',
    message: '<%= error.message %>',
    sound: 'Beep'
}))

这适用于我的其他任务(在我的 'scripts' 任务中,我需要指定 gulp-jshint 失败报告器)。但是在我的 'styles' 任务中,错误消息正在流式传输到控制台和浏览器,而不是弹出通知。

它可以正常工作,但是当使用浏览器同步进行 css 样式注入时,可能会错过错误消息。有时我不在呈现错误消息的文档顶部工作。

理想情况下,我希望收到可以提示我检查错误的通知。有谁知道为什么我不能使用 gulp-notify 创建消息?

我找到的解决方案是将 notify.onError 包装在一个匿名函数中并附加 this.emit('end'):

.on('error', function(err) {
    notify.onError({
        title: 'Error!',
        message: '<%= error.message %>',
        sound: 'Beep'
    })(err);
    this.emit('end');
})