Skip to content

shootaroo/grunt-contrib-csslint

 
 

Repository files navigation

grunt-contrib-csslint Build Status

Lint CSS files.

Getting Started

This plugin requires Grunt ~0.4.0

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.

Task targets, files and options may be specified according to the grunt Configuring tasks guide.

Files are linted with csslint.

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 value: 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. The csslint file must be valid JSON and looks something like this:

{
  "qualified-headings": true,
  "unique-headings": true,
  "known-properties": false
}
formatters

Type: array Default value: 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 supported:

  • text
  • compact
  • lint-xml
  • csslint-xml
  • checkstyle-xml
  • junit-xml

For an explanation of those formatters, check the csslint wiki, section Options/--format.

absoluteFilePathsForFormatters

Type: Boolean Default value: false

If the absoluteFilePathsForFormatters option is specified and set to true, the file names in the generated reports are absolute.

force

Type: Boolean Default value: false

If the force option is specified and set to true, errors and warnings are reported but the task does not fail.

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']
  }
}
Specifiying 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']
  }
}
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'}
    ]
  }
}
Using force option to report but not fail on errors
csslint: {
  options: {
    force: true
  }
}

Release History

  • 2013-04-01   v0.1.2   Allow absolute filepaths in reports.
  • 2013-03-13   v0.1.1   Support formatters Support .csslintrc
  • 2013-03-06   v0.1.0   Initial release.

Task submitted by Jörn Zaefferer

This file was generated on Tue Apr 02 2013 08:24:37.

About

Lint CSS files.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%