2016-12-09 5 views
0

私はいくつかのがぶ飲みタスクを持っている...lintが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は何が起こったかに関係なく、2番目のrunSequenceを実行します。

私はGulpに警告が表示されず、構文チェックのいずれかにエラーがない場合にのみ、タスクの第2のシーケンスを実行するようにしたいと思います。また、コンソールに何も出力しないようにしたいと思います。

これはどのように達成できますか?

答えて

1

checkScssSyntaxcheckJavascriptSyntaxタスクではエラーイベントが発生しないため、run-sequenceはエラーイベントの1つが失敗したときに通知しません。 gulp-sass-lintgulp-jshintは、デフォルトでエラーイベントを出力しませんが、エラーイベントを出力するように指示する関数を提供します。あなたのcheckJavascriptSyntaxタスクの使用jsHint.reporter('fail')

gulp.task('checkScssSyntax', function() { 
    return gulp.src(scssFiles) 
     .pipe(sassLint()) 
     .pipe(sassLint.format()) 
     .pipe(sassLint.failOnError()); 
}); 

:あなたのcheckScssSyntaxタスクの使用sassLint.failOnError()

gulp.task('checkJavascriptSyntax', function() { 
    var jsStream = gulp.src(jsFiles); 
    return jsStream.pipe(jsHint()) 
    .pipe(jsHint.reporter('jshint-stylish')) 
    .pipe(jsHint.reporter('fail')); 
}); 

私も何リンター以外のコンソールには何も出力を回避したいと思いますコンソールに印刷する

GulpにはCLI flagがあり、すべてのグループログを抑制します:

gulp --silent 
関連する問題