node package manager

grunt-linter

Validates JavaScript files with JSLint or JSHint

grunt-linter

Validates JavaScript files with JSHint or JSLint as a grunt task. JSHint is bundled with the plugin.

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');

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>
/*jslint node:true*/
 
module.exports = function (grunt) {
 
'use strict';
 
grunt.loadNpmTasks('grunt-linter'); // load the task 
 
grunt.initConfig({
watch: {
files: '<config:linter.files>',
tasks: 'linter'
},
 
// TAKE NOTE - this has changed since 0.1.8 
 
linter: { // configure the task 
files: [ // some example files 
'grunt.js',
'src/**/*.js'
],
exclude: [
'**/ignore-*.js',
'bananas.js'
],
directives: { // example directives 
browser: true,
todo: true
},
globals: {
jQuery: true
},
options: {
junit: 'out/junit.xml', // write the output to a JUnit XML 
log: 'out/lint.log',
errorsOnly: true, // only display errors 
linter: '/path/to/jshint.js'
}
}
 
});
 
grunt.registerTask('default', 'watch');
};
  • 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

Copyright (c) 2012 David Sturley, Stephen Mathieson Licensed under the MIT license.