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.