grunt-lesslint

Grunt task for validating LESS files with CSS Lint

LESS Lint Grunt plugin

Lint your LESS files using CSS Lint from Grunt.

This plugin compiles your LESS files, runs the generated CSS through CSS Lint, and outputs the offending LESS line for any CSS Lint errors found.

npm install grunt-lesslint
  • Clone the repository
  • Run npm install
  • Run grunt to compile the CoffeeScript code
  • Run grunt test to run the specs

Add the following to your Gruntfile.coffee:

grunt.initConfig
  lesslint:
    src: ['src/**/*.less']
 
grunt.loadNpmTasks('grunt-lesslint')

Then run grunt lesslint to lint all the .less files under src/.

By default the plugin uses the less and csslint config settings to configure the LESS parser and the CSS Lint validator.

You can configure the CSS Lint validator, such as for disabling certain rules, by adding a csslint option value:

lesslint:
  src: ['less/*.less']
  options:
    csslint:
      'known-properties': false

You can configure the LESS parser, such as for adding include paths, by adding a less option value:

lesslint:
  src: ['less/*.less']
  options:
    less:
      paths: ['includes']

By default, this plugin does not include any lint errors from imported files in the output.

You can enable this by adding an imports configuration option:

lesslint:
  src: ['src/**/*.less']
  options:
    imports: ['imports/**/*.less']

This plugin provides the same output formatter options as the CSS Lint plugin and can be configured similarly:

lesslint:
  options:
    formatters: [
      id: 'csslint-xml'
      dest: 'report/lesslint.xml'
    ]

It is possible to create and use your own custom rules. To create rules, please refer to the official CSSLint guidelines. The only addition is that each custom rule file must import CSSLint using {CSSLint} = require 'csslint' for CoffeeScript or var CSSLint = require('csslint').CSSLint; for JavaScript.

You can enable your custom rules by adding a customRules configuration option:

lesslint:
  options:
    customRules: ['lint-rules/less/**/*.coffee']
> grunt lesslint
Running "lesslint" (lesslint) task
static/editor.less (1)
Values of 0 shouldn't have units specified. You don't need to specify units when a value is 0. (zero-units)
>> 14: line-height: 0px;
 
>> 1 linting error in 56 files.