所以,整天都在研究我们新的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,我正在使用:
gulp 3.8.10 gulp-jshint 1.8.6 gulp-notify 2.0.1通过OSX 10.9.4
答案 0 :(得分: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'}));
});