如果 lint 因 Gulp 失败,是否 运行 执行任务?
Don't run tasks if lint fails with Gulp?
我有几个 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 仅 运行 第二个任务序列,前提是没有警告,并且在任何一个语法检查中都没有错误。除了 linters 打印到控制台的内容之外,我还想避免向控制台输出任何内容。
如何实现?
您的 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'));
});
I would also like to avoid outputting ANYTHING to the console other than what the linters print to the console
Gulp 有一个 CLI flag 让你禁止所有 gulp 记录:
gulp --silent
我有几个 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 仅 运行 第二个任务序列,前提是没有警告,并且在任何一个语法检查中都没有错误。除了 linters 打印到控制台的内容之外,我还想避免向控制台输出任何内容。
如何实现?
您的 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'));
});
I would also like to avoid outputting ANYTHING to the console other than what the linters print to the console
Gulp 有一个 CLI flag 让你禁止所有 gulp 记录:
gulp --silent