3

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

因此,如果一切顺利,我们将什么也看不到:浏览器将重新加载,我们将继续工作。

但是,我们想使用 gulp notify 来处理错误,所以如果我们有什么错误,就会弹出通知程序,此时您可以检查控制台并查看错误。

失败时的 sass 任务示例:

失败时的 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,我正在使用:

吞咽 3.8.10 吞咽-jshint 1.8.6 吞咽-通知 2.0.1

通过 OSX 10.9.4

4

1 回答 1

5

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'}));
  });
于 2015-01-23T18:41:52.150 回答