grunt-linter
Validates JavaScript files with JSHint or JSLint as a grunt task. JSHint is bundled with the plugin.
Installation
Install this grunt plugin next to your project's grunt.js gruntfile with: npm install grunt-linter
Then add this line to your project's grunt.js
gruntfile:
grunt.loadNpmTasks('grunt-linter');
Documentation
A single-task to validate your JavaScript files with JSHint or JSLint.
Supports the following options:
- files
- An array of files or wildcards which you want to be validated with the linter.
<dt>exclude</dt>
<dd>A String/filepath/wildcard option which, when provided, tells the plugin which files should be ignored (not scanned).
</dd>
<dt>directives</dt>
<dd>Configuration options/settings to pre-define in JSHint.</dd>
<dt>globals</dt>
<dd>Pre-defined globals; should be an object: <code>{
jQuery: true
}</code></dd>
<dt>options</dt>
<dd>Configuration options/settings for the plugin itself. Currently supports the following:
<dl>
<dt>errorsOnly</dt>
<dd>A Boolean option which tells the plugin to only display errors when set to `true`.</dd>
<dt>log</dt>
<dd>A String/filepath option which, when provided, tells the plugin where to write a verbose log to.</dd>
<dt>junit</dt>
<dd>A String/filepath option which, when provided, tells the plugin where to write a JUnit-style XML file to.</dd>
<dt>linter</dt>
<dd>A String/filepath option which, when provided, tells the plugin where to load JSHint or JSLint from.</dd>
</dl>
</dd>
Example Usage
module.exports = function (grunt) {
'use strict';
grunt.loadNpmTasks('grunt-linter');
grunt.initConfig({
watch: {
files: '<config:linter.files>',
tasks: 'linter'
},
linter: {
files: [
'grunt.js',
'src/**/*.js'
],
exclude: [
'**/ignore-*.js',
'bananas.js'
],
directives: {
browser: true,
todo: true
},
globals: {
jQuery: true
},
options: {
junit: 'out/junit.xml',
log: 'out/lint.log',
errorsOnly: true,
linter: '/path/to/jshint.js'
}
}
});
grunt.registerTask('default', 'watch');
};
Release History
- 0.3.3 - JSHint updated to 2.4.x
- 0.3.2 - JSHint updated to 1.1.x
- 0.3.1 - JSHint 1.0.0 released on npm. Removed JSHint submodule and replaced with an npm dependency.
- 0.3.0 - Removed Grunt 0.3.x support, updated to JSHint 1.0.0 and improved .jshintrc support.
/*exported
directive is now supported! - 0.2.1 - Actual Grunt 0.4.0 support (expandFiles issue)
- 0.2.0 - Grunt 0.4.0 support.
- 0.1.2 - Added
.jshintrc
support. Example .jshintrc - 0.1.1 - Made
options
optional - 0.1.0 - Forked from grunt-jslint; first release
License
Copyright (c) 2012 David Sturley, Stephen Mathieson
Licensed under the MIT license.