CSSLint plugin for gulp 3
First, install gulp-csslint
as a development dependency:
npm install --save-dev gulp-csslint
Then, add it to your gulpfile.js
:
var csslint = require('gulp-csslint');
gulp.task('css', function() {
gulp.src('./client/css/*.css')
.pipe(csslint())
.pipe(csslint.reporter());
});
Type: Object
You can pass rule configuration as an object. See the list of rules by ID on the CSSLint wiki for valid rule IDs.
gulp.src('./client/css/*.css')
.pipe(csslint({
'shorthand': false
}))
.pipe(csslint.reporter());
Type: String
You can also pass the path to your csslintrc file instead of a rule configuration object.
gulp.src('./client/css/*.css')
.pipe(csslint('csslintrc.json'))
.pipe(csslint.reporter());
Adds the following properties to the file object:
file.csslint.success = true; // or false
file.csslint.errorCount = 0; // number of errors returned by CSSLint
file.csslint.results = []; // CSSLint errors
file.csslint.opt = {}; // The options you passed to CSSLint
Custom reporter functions can be passed as cssline.reporter(reporterFunc)
. The reporter function will be called for each linted file and passed the file object as described above.
var csslint = require('gulp-csslint');
var gutil = require('gulp-util');
var customReporter = function(file) {
gutil.log(gutil.colors.cyan(file.csslint.errorCount)+' errors in '+gutil.colors.magenta(file.path));
file.csslint.results.forEach(function(result) {
gutil.log(result.error.message+' on line '+result.error.line);
});
};
gulp.task('lint', function() {
gulp.files('./lib/*.js')
.pipe(csslint())
.pipe(csslint.reporter(customReporter));
});