我有一些Gulp任务......
gulp.task('checkScssSyntax', function() {
return gulp.src(scssFiles)
.pipe(sassLint())
.pipe(sassLint.format());
});
gulp.task('checkJavascriptSyntax', function() {
var jsStream = gulp.src(jsFiles);
return jsStream.pipe(jsHint())
.pipe(jsHint.reporter('jshint-stylish'));
});
gulp.task('default', function() {
runSequence(['checkJavascriptSyntax', 'checkScssSyntax'], function(error) {
if (error) {
console.log(error);
} else {
runSequence('compileJS', 'compileCSS', 'watch');
}
});
});
这似乎不起作用。无论发生什么,Gulp都会运行第二个runSequence
。
我希望Gulp只在没有警告的情况下才运行第二个任务序列,并且在任何一个语法检查中都没有错误。我还想避免将ANYTHING输出到控制台,而不是将linters打印到控制台。
如何实现这一目标?
答案 0 :(得分:1)
您的checkScssSyntax
和checkJavascriptSyntax
任务不会发出错误事件,因此当其中一个失败时,run-sequence
不会注意到。默认情况下,gulp-sass-lint
和gulp-jshint
都不会发出错误事件,但会提供指示他们这样做的函数。
在checkScssSyntax
任务中使用sassLint.failOnError()
:
gulp.task('checkScssSyntax', function() {
return gulp.src(scssFiles)
.pipe(sassLint())
.pipe(sassLint.format())
.pipe(sassLint.failOnError());
});
在checkJavascriptSyntax
任务中使用jsHint.reporter('fail')
:
gulp.task('checkJavascriptSyntax', function() {
var jsStream = gulp.src(jsFiles);
return jsStream.pipe(jsHint())
.pipe(jsHint.reporter('jshint-stylish'))
.pipe(jsHint.reporter('fail'));
});
我还想避免输出ANYTHING到控制台,除了linters打印到控制台
Gulp有一个CLI flag让你压制所有gulp记录:
gulp --silent