无法使 gulp-notify 在 gulp-jshint 失败时弹出错误消息

Cant make gulp-notify to pop up a error message when gulp-jshint fail

所以,一整天都在研究我们新的 FE 工作流,主要思想是 运行 通过观察者完成一些任务,我们将有我们的 IDE 和 window 每次发生变化时浏览器都会刷新(scss、js、html 等)。

因此,如果一切顺利,我们将不会看到任何内容:浏览器将重新加载,我们将继续工作。

但是,我们想使用 gulp 通知错误,所以万一我们出了什么问题,就会出现通知弹出窗口,此时,您可以检查控制台并查看错误。

我们的 sass 任务失败时的示例:

对于我们的样式任务,一切正常,但我无法为 JS 文件完成此任务。

主要是,我无法让 gulp-jshint 正常工作。

这将是这样的:你保存你的 js 文件,如果失败,弹出窗口出现,当你看到这个时,你转到控制台,你会看到 jshint-stylish 的输出。

有人可以帮我吗?

这是我的(无效的)解决方案:

gulp.task( 'js-hint', function() {
    return gulp.src( config.source )
        .pipe( plumber() )
        .pipe( jshint( config.jsHintRules ) )
        .pipe( jshint.reporter( 'jshint-stylish' ) )
        .on('error', notify.onError( { message: 'JS hint fail' } ) );
});

显然,我的概念有问题,所以,有人可以帮我指明正确的方向吗?

请注意,我只想一直发出相同的消息"JS hint fail"

然后,控制台(感谢 jshint-stylish)将为我们提供更多信息。

此外,这将在观察者身上。 在 JS 提示通过后,将执行更多任务,如 borwserify,因此重要的是如果它停止,"wait" 直到我修复它然后继续。

谢谢!

PS,我正在使用:

gulp 3.8.10 gulp-jshint 1.8.6 gulp-通知 2.0.1

超过 OSX 10.9.4

gulp 中的 error 事件仅在流中发生错误时触发。

要将错误报告器添加到 gulp-jshint 通过 fail 报告器传递它:

 gulp.task('js-hint', function() {
      return gulp.src(config.source)
        .pipe(plumber())
        .pipe(jshint( config.jsHintRules))
        .pipe(jshint.reporter('jshint-stylish'))
        .pipe(jshint.reporter('fail'))
        .on('error', notify.onError({ message: 'JS hint fail'}));
  });