我有一些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
。
我希望只有在没有警告的情况下才能运行第二个任务序列,并且在任何一个语法检查中都没有错误。我还想避免将任何东西输出到控制台外,除了将其打印到控制台外。
如何完成?
您的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'));
});
我还想避免将任何东西输出到控制台外,除了将其打印到控制台
Gulp有一个CLI标志,可以让您抑制所有墨西哥仓库:
gulp --silent