grunt-jslint
Validates JavaScript files with JSLint as a grunt task.
Installation
Install this grunt plugin next to your project's grunt.js gruntfile with: npm install grunt-jslint
Then add this line to your project's gruntfile:
grunt.loadNpmTasks('grunt-jslint');
Documentation
A single-task to validate your JavaScript files with JSLint.
Supports the following options:
- files An array of files or wildcards which you want to be validated by JSLint
- exclude An array of files or wildcards which you do not want to be validated by JSLint
- directives Configuration options/settings to pre-define in JSLint. Pre-defined globals are included within this object as
predef: ['myglobal']
- options
- 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
- failOnError A Boolean option - defaults to
true
; when set to false
, grunt will not fail if JSLint detects an error - checkstyle A String/filepath option which, when provided, tells the plugin where to write a CheckStyle-XML file to
- shebang Ignore shebang lines (
#!/usr/bin/whatever
) from files
Example Usage
module.exports = function (grunt) {
'use strict';
grunt.loadNpmTasks('grunt-jslint');
grunt.initConfig({
watch: {
files: '<config:jslint.files>',
tasks: 'jslint'
},
jslint: {
files: [
'grunt.js',
'src/**/*.js'
],
exclude: [
'**/ignore-*.js',
'bananas.js'
],
directives: {
browser: true,
unparam: true,
todo: true,
predef: [
'jQuery'
]
},
options: {
junit: 'out/junit.xml',
log: 'out/lint.log',
jslintXml: 'out/jslint_xml.xml',
errorsOnly: true,
failOnError: false,
shebang: true,
checkstyle: 'out/checkstyle.xml'
}
}
});
grunt.registerTask('default', 'watch');
};
Contributing
All files should be validated with JSLint. Bug fixes and/or new features must be accompanied by a passing test. Tests are written with vows.
Validating coding style
Run grunt jslint
in the root of your repository.
Running the tests
Run ./test.sh
in the root of your repository.
TODOs
- better test coverage
- test-runner for Windows
Release History
0.2.5a
- Make grunt a devDependency to speed up
npm install
time
0.2.5
- Fixed
failOnError
bug (@glan) - Fixed JSLint XML bug (@glan)
- Another grunt 0.4.x support bug (@glan)
- Bug fix for XML reports (non-escaped characters)
- Added checkstyle XML reporting
- Added
shebang
option - Improved test coverage
0.2.4
- Re-factor everything, allowing for a test suite to be created
- Updated the outputted JUnit-style XML for better intergration with Jenkins per @sbrandwoo
- Removed unecessary dependencies
0.2.3-1
- Fix for bad template processing; thanks to @sbrandwoo
0.2.3
0.2.2-1
- Updating JSLint to "edition" 2012-11-17
0.2.2
- Adding option to not cause Grunt to fail if a violation is detected
0.2.1
0.2.0
- Cleaned up your
grunt.js
file for you - moved all options into the jslint
object
0.1.8
- Updating README.md to contain more verbose documentation
- Adding keywords to package.json
0.1.7
- Added an option to only report on errors
0.1.6
- Added an exclude option
- Added number of files in violation to standard output
License
Copyright (c) 2012 Stephen Mathieson
Licensed under the WTFPL license.