A Grunt task for running JSHint or JSLint
JavaScript
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bin
tasks
.gitignore
.gitmodules
.jshintrc
Gruntfile.js
LICENSE-MIT
README.md
package.json

README.md

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

/*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');
};

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.