Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including jqlint with all npm packages installed. Try it out:

var jqlint = require("jqlint")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

jqlint v1.1.0

static analysis of jQuery usage

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 without new keyword

RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free