grunt-contrib-csslint v2.0.0
Lint CSS files
Getting Started
If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:
npm install grunt-contrib-csslint --save-dev
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
grunt.loadNpmTasks('grunt-contrib-csslint');
Csslint task
Run this task with the grunt csslint
command.
Options
Any specified option will be passed through directly to csslint, thus you can specify any option that csslint supports. The csslint API is a bit awkward: For each rule, a value of false
ignores the rule, a value of 2
will set it to become an error. Otherwise all rules are considered warnings.
For the current csslint version, these rules are available:
- important
- adjoining-classes
- known-properties
- box-sizing
- box-model
- overqualified-elements
- display-property-grouping
- bulletproof-font-face
- compatible-vendor-prefixes
- regex-selectors
- errors
- duplicate-background-images
- duplicate-properties
- empty-rules
- selector-max-approaching
- gradients
- fallback-colors
- font-sizes
- font-faces
- floats
- star-property-hack
- outline-none
- import
- ids
- underscore-property-hack
- rules-count
- qualified-headings
- selector-max
- shorthand
- text-indent
- unique-headings
- universal-selector
- unqualified-attributes
- vendor-prefix
- zero-units
For an explanation of those rules, check the csslint wiki.
Side note: To update this list, run this:
node -e "require('csslint').CSSLint.getRules().forEach(function(x) { console.log(x.id) })"
A few additional options are supported:
csslintrc
Type: string
Default: null
If this filename is specified, options and globals defined therein will be used. Task and target options override the options within the .csslintrc
file. It should be a JSON file, but it supports comments:
{
// unicorns
"qualified-headings": true,
"unique-headings": true,
"known-properties": false
}
formatters
Type: array
Default: null
If the formatters options is specified, the grunt csslint task is able to use the all formatters provided by csslint.
For the current csslint version, the following formatters are included out of the box:
text
compact
lint-xml
csslint-xml
checkstyle-xml
junit-xml
For an explanation of those formatters, check the csslint wiki, section Options/--format.
You are also able to supply your own custom formatter, such as csslint-stylish. Note that you have to provide the complete module, not just the id. See example.
absoluteFilePathsForFormatters
Type: boolean
Default: false
If the absoluteFilePathsForFormatters
option is specified and set to true
, the file names in the generated reports are absolute.
quiet
Type: boolean
Default: false
Only output errors.
quiet_all
Type: boolean
Default: false
Outputs without errors and warnings.
Usage Examples
csslint: {
strict: {
options: {
import: 2
},
src: ['path/to/**/*.css']
},
lax: {
options: {
import: false
},
src: ['path/to/**/*.css']
}
}
Loading rules from an external file
csslint: {
options: {
csslintrc: '.csslintrc'
},
strict: {
options: {
import: 2
},
src: ['path/to/**/*.css']
},
lax: {
options: {
import: false
},
src: ['path/to/**/*.css']
}
}
Specifying output formatters
csslint: {
options: {
csslintrc: '.csslintrc',
formatters: [
{id: 'junit-xml', dest: 'report/csslint_junit.xml'},
{id: 'csslint-xml', dest: 'report/csslint.xml'}
]
},
strict: {
options: {
import: 2
},
src: ['path/to/**/*.css']
}
}
Providing a custom formatter
csslint: {
options: {
csslintrc: '.csslintrc',
formatters: [
{id: require('csslint-stylish'), dest: 'report/csslint_stylish.xml'}
]
},
strict: {
options: {
import: 2
},
src: ['path/to/**/*.css']
}
}
Using absolute file paths in the output formatters
csslint: {
options: {
absoluteFilePathsForFormatters: true,
formatters: [
{id: 'junit-xml', dest: 'report/csslint_junit.xml'},
{id: 'csslint-xml', dest: 'report/csslint.xml'}
]
}
}
Release History
- 2016-09-22βββv2.0.0βββUpdate (dev)dependecies including to csslint to v1.0.3.
- 2016-03-04βββv1.0.0βββPoint main to task and remove peerDeps. Updates to docs.
- 2015-07-18βββv0.5.0βββAdd ability to register custom formatters.
- 2015-01-18βββv0.4.0βββThe
.csslintrc
file can now contain comments. - 2014-09-07βββv0.3.1βββShow affected browsers in errors and warnings.
- 2014-09-07βββv0.3.0βββCSSLint "warnings" no longer fail build. Updated dependencies.
- 2013-12-02βββv0.2.0βββBump to csslint 0.10.0
- 2013-04-02βββv0.1.2βββAllow absolute filepaths in reports.
- 2013-03-14βββv0.1.1βββSupport formatters. Support .csslintrc.
- 2013-03-07βββv0.1.0βββInitial release.
Task submitted by JΓΆrn Zaefferer
This file was generated on Thu Sep 22 2016 02:55:13.