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
or loading a .csslintrc
file, by adding a csslint
option value:
lesslint:
src: ['less/*.less']
options:
csslint:
'known-properties': false
csslintrc: '.csslintrc'
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('grunt-lesslint').CSSLint
.
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.
- In v3.0.0
options
is no longer passed to the LESS compiler.options.less
is passed instead, as described by the documentation. - In v2.0.0 the LESS compiler was updated to v2.5.3