jqlint
v1.1.0
Published
static analysis of jQuery usage
Downloads
7
Readme
jqlint
JSLint but for jQuery! This is primarily to support my strict jQuery ideals, and may hurt your feelings. :P
This is a static analysis tool, just like JSLint. It is not yet intended to be used as a runtime analysis tool in the browser, but I wouldn't say no to such a Pull Request.
Usage
var jqlint;
jqlint = require('jqlint');
// example code to lint
var code;
code = '$("#id").find(".class").attr("attr", "value");'
var report;
report = jqlint(code);
// report.errors will be an Array of errors found, just like the JSLint report
Assumptions
These will hopefully be reduced over time as jqlint gains sophistication.
jQuery is available in any scope as
jQuery
or$
any identifier (e.g. variable or property name) that begins or ends with
$
is a cached jQuery selector e.g.$button
,input$
, etc
Options
The only way to set options currently is to use block comments in your code,
like JSLint. For example: /*jslint angular:true*/
angular (default: false)
- if true: identifiers beginning with
$
will not be treated like cached jQuery selectors (e.g.$scope
)
Detected Errors
This list will continue to grow.
jqlint currently detects:
use of features deprecated in jQuery 1.3:
jQuery.browser
,jQuery.boxModel
use of features deprecated in jQuery 1.7:
.die()
,.live()
,.selector
,jQuery.sub()
use of features superseded in jQuery 1.7:
.bind()
,.unbind()
,.delegate()
,.undelegate()
use of features deprecated in jQuery 1.8:
.andSelf()
,.error()
,.load()
,.unload()
,.size()
,.toggle()
use of features deprecated in jQuery 1.8:
.context
use of features designed only for jQuery-internal use:
jQuery.support
deferred = $.Deferred()
in constructor form withoutnew
keyword