grunt-linter

Validates JavaScript files with JSLint or JSHint

npm install grunt-linter
1 downloads in the last day
50 downloads in the last week
185 downloads in the last month

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.
exclude
A String/filepath/wildcard option which, when provided, tells the plugin which files should be ignored (not scanned).
directives
Configuration options/settings to pre-define in JSHint.
globals
Pre-defined globals; should be an object: { jQuery: true }
options
Configuration options/settings for the plugin itself. Currently supports the following:
errorsOnly
A Boolean option which tells the plugin to only display errors when set to true.
log
A String/filepath option which, when provided, tells the plugin where to write a verbose log to.
junit
A String/filepath option which, when provided, tells the plugin where to write a JUnit-style XML file to.
linter
A String/filepath option which, when provided, tells the plugin where to load JSHint or JSLint from.
</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.

npm loves you