javascript – 当gulp-jshint失败时,无法使gulp-notify弹出错误消息

那么,整天都在研究新的FE工作流程,主要的想法是通过观察者运行一些任务,我们将拥有IDE和一个窗口,浏览器每次发生变化时都会刷新(scss,js,html,等等).

所以,如果一切顺利,我们什么都看不到:浏览器将重新加载,我们将继续工作.

但是,我们希望使用gulp notify来处理错误,所以如果我们出错了,会弹出通知程序,此时,您可以检查控制台并查看错误.

失败时我们的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提示失败”

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

此外,这将是一个观察者.
在JS提示传递之后,将执行更多的任务,比如borwserify,所以重要的是如果它停止,“等待”直到我完成修复然后继续.

谢谢 !

PS,Im使用:

吞咽3.8.10
gulp-jshint 1.8.6
gulp-notify 2.0.1

通过OSX 10.9.4

解决方法:

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

要将错误报告器添加到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'}));
  });
上一篇:gulpInst.start.apply(gulpInst, toRun);(已解决)


下一篇:javascript – 如何使用Gulp auto-prefixer定位所有浏览器