gulp-csslint
CSSLint plugin for gulp
Usage
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());
});
Options
Rule configuration
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());
CSSLint RC
You can also pass the path to your csslintrc file:
gulp.src('./client/css/*.css')
.pipe(csslint('csslintrc.json'))
.pipe(csslint.reporter());
Results
Adds the following properties to the file object:
file.csslint.success = true;
file.csslint.errorCount = 0;
file.csslint.results = [];
file.csslint.opt = {};
Custom Reporters
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));
});