grunt-lesshint
Version:
Lint lesscss files with grunt
141 lines (115 loc) • 6.24 kB
Markdown
# grunt-lesshint
> Lint LESSCSS files with grunt
[](https://david-dm.org/lesshint/grunt-lesshint)
[](https://david-dm.org/lesshint/grunt-lesshint#info=devDependencies)
[](https://travis-ci.org/lesshint/grunt-lesshint)
## Getting Started
This plugin requires Grunt `~0.4.5`
If you haven't used [Grunt](http://gruntjs.com/) before, be sure to check out the [Getting Started](http://gruntjs.com/getting-started) guide, as it explains how to create a [Gruntfile](http://gruntjs.com/sample-gruntfile) as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:
```shell
npm install grunt-lesshint --save-dev
```
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
```js
grunt.loadNpmTasks( 'grunt-lesshint' );
```
## The "lesshint" task
### Overview
In your project's Gruntfile, add a section named `lesshint` to the data object passed into `grunt.initConfig()`.
```js
grunt.initConfig({
lesshint: {
options: {
// Task-specific options go here.
},
your_target: {
// Target-specific file lists and/or options go here.
},
},
});
```
## Options
#### force
Type: `Boolean`
Default value: `false`
Set `force` to `true` to report lesshint errors but not fail the task.
#### reporter
Type: `Object`
Refer to the lesshint docs for more examples: https://github.com/lesshint/lesshint#writing-your-own-reporter
Define your own custom reporter:
```javascript
options {
reporter: {
name: "foo-reporter", // optional but recommended
report: function(errors) {
errors.forEach(function(error) {
console.log(error);
// error object looks like:
// {
// column: 5,
// file: 'file.less',
// fullPath: 'path/to/file.less',
// line: 1,
// linter: 'spaceBeforeBrace',
// message: 'Opening curly brace should be preceded by one space.',
// severity: 'warning',
// source: '.foo{'
// }
});
}
}
}
```
#### lesshintrc
Type: `String` or `true`
Default: `null`
If set to `true`, no config will be sent to lesshint and lesshint will search for `.lesshintrc` files relative to the files being linted.
If a filename is specified, options and globals defined therein will be used. The `lesshintrc` file must be valid JSON and looks something like this:
```json
{
"spaceAfterPropertyColon": "no_space",
"spaceBeforeBrace": "no_space"
}
```
#### allowWarnings
Type: `Boolean`
Default value: `false`
Set `allowWarnings` to `true` to allow the task to succeed if only warnings occur.
## Contributing
In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using [Grunt](http://gruntjs.com/).
## Release History
|Date|Version|Changes|
|---|---|---|
|2017-04-21|1.5.1|Fix so we don't break if Lesshint changes config setup in the future|
|2017-03-12|1.5.0|<ul><li>Update lesshint to 3.0.0</li><li>Update grunt-mocha-test to 0.13.2</li><li>Update mocha to 3.2.0</li></ul>|
|2016-10-10|1.4.0|Added support for allowing warnings without exiting. Thanks [@mmckenziedev](https://github.com/mmckenziedev)!|
|2016-09-22|1.3.0|Added support for custom reporters. Thanks [@scttdavs](https://github.com/scttdavs)!|
|2016-09-05|1.2.0|<ul><li>Update grunt to 1.0.0</li><li>Update lesshint to 2.0.0</li><li>Added node 6.* to Travis</li></ul>|
|2016-01-26|1.1.1|Update grunt-contrib-jshint to 0.12.0|
|2015-10-20|1.1.0|<ul><li>Update lesshint to 1.0.0</li><li>Switch lesshint back to ^ to ~</li><li>Update mocha to 2.3.3</li><li>Update grunt-contrib-jshint to 0.11.3</li></ul>|
|2015-09-08|1.0.0|Switch lesshint dependency from ^ to ~ because of the [Caret: Major Zero](https://nodesource.com/blog/semver-tilde-and-caret) issue. *Note: Bumping to 1.0.0 to avoid the issue for this repo*|
|2015-09-01|0.9.1|Fix readme and version for 0.9.0 and 0.9.1|
|2015-09-01|0.9.0|<ul><li>Update lesshint to 0.8.0</li><li>Update mocha to 2.3.0</li></ul>|
|2015-08-27|0.8.0|<ul><li>Update lesshint to 0.8.0</li><li>Update spawn-sync to 1.0.11</li><li>Update chalk to 1.1.1</li></ul>|
|2015-06-25|0.7.0|<ul><li>Update lesshint to 0.7.0</li><li>Move grunt-lesshint to it's new home</li></ul>|
|2015-06-28|0.6.1|Update lesshint to 0.6.2|
|2015-05-28|0.6.0|Update lesshint to 0.6.1|
|2015-05-25|0.5.1|Fix readme and version for 0.5.0|
|2015-05-25|0.5.0|Add CI support with Travis-ci and some experimental coveralls.io support|
|2015-05-25|0.4.0|Add support for using custom ```.lesshintrc``` files|
|2015-05-21|0.3.1|Forgot to update everything for the 0.3.0 release....|
|2015-05-21|0.3.0|<ul><li>Use a real force system instead of faking the <code>--force</code> grunt parameter</li><li>Update JSHint options and clean up errors</li></ul>|
|2015-05-19|0.2.7|Update lesshint to 0.5.1|
|2015-05-18|0.2.6|Fix NPM publish|
|2015-05-18|0.2.5|Update lesshint to 0.5.0|
|2015-05-11|0.2.3|Update lesshint to 0.4.1|
|2015-05-11|0.2.2|<ul><li>Use <code>Lesshint</code> instead of <code>LessHint</code></li><li>Don't fail the linter after every file with errors</li></ul>|
|2015-05-11|0.2.1|Update lesshint to 0.4.0|
|2015-05-03|0.2.0|Add support for passing options to lesshint|
|2015-05-03|0.1.6|Update lesshint to 0.3.1|
|2015-05-03|0.1.5|Update lesshint to 0.3.0|
|2015-04-27|0.1.4|<ul><li>Update lesshint to 0.2.0</li><li>Fix duplicate whitespace</li></ul>|
|2015-04-24|0.1.3|<ul><li>Update lesshint to 0.1.5</li><li>Use lesshint defaults instead of our own</li></ul>|
|2015-04-22|0.1.2|<ul><li>Updated testfiles and tests</li><li>Update devDependencies</li></ul>|
|2015-04-21|0.1.1|Readme fixes|
|2015-04-21|0.1.0|Initial release|