A Leiningen plugin for running javascript code through JSLint
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
example
src
test/lein_jslint
.gitignore
.travis.yml
LICENSE
README.md
project.clj

README.md

lein-jslint

JSLint is a static code analysis tool used in software development for checking if JavaScript source code complies with coding rules.

lein-jslint is a Leiningen plugin for running javascript code through JSLint.

Build Status Dependencies Status

Pre-requirements

Install NodeJS and NPM (package manager for Node) to install JSHint:

  • On Ubuntu: sudo apt-get install nodejs
  • On Mac OS X: brew install node

Installation

Install JSLint to use lein-jslint plugin. It could be done in few ways:

  • Use NPM to install JSLint globally: npm install jslint -g
  • You can also install JSLint in the current directory: npm install jslint
  • Use lein-npm plugin: lein npm install
  • Use just Leiningen: lein deps

Setup

To enable lein-jslint for your project, put the following in the :plugins vector of your project.clj file:

latest-version

Configuration

You can specify places, where JS files will be located with:

:jslint {
  :includes ["resources/public/js/*.js"
             "resources/js/*.js"]
}

You can also specify JS files that should be excluded from checking:

:jslint { :excludes ["resources/public/lib/*.js"] }

To specify :includes and :excludes options, it is possible to use Glob Patterns.

JSLint rules could be configured with :config parameter:

; It specifies which JSLint options to turn on or off
:jslint {
  :debug true ; To debug processing
  :config {:predef {"angular" "console" "$"}
           :nomen true
           :es5 true
           :eqeq true
           ...}}

You can use both variants to specify keys: string values or keywords.

All available parameters are described in the official documentation here: http://www.jslint.com/lint.html

Hooks

To enable this plugin in compile stage, use the following hook:

:hooks [lein-jslint.plugin]

Examples

Detailed example

:jslint {
  :includes ["resources/public/js/*.js"]

  ; This configuration is used by default
  :config {:confusion    true
           :continue     true
           :css          true
           :es5          true
           :fragment     true
           :regexp       true
           :unparam      true
           :vars         true
           :validthis    true
           :strict_mode  true}}

Another example of configuration file: .jslintrc

Example project

Just clone the current repository and try to play with example project for better understanding how to use lein-jslint.

Thanks to

Douglas Crockford for the great JSLint project.

Might also like

  • lein-asciidoctor - A Leiningen plugin for generating documentation using Asciidoctor.
  • lein-plantuml - a Leiningen plugin for generating UML diagrams using PlantUML.
  • lein-coffeescript - a Leiningen plugin for running CoffeeScript compiler.
  • lein-typescript - a Leiningen plugin for running TypeScript compiler.
  • lein-jshint - a Leiningen plugin for running javascript code through JSHint.
  • jabberjay - a simple framework for creating Jabber bots.
  • coderwall-clj - a tiny CoderWall client for Clojure.

License

Copyright © 2014 Vladislav Bauer

Distributed under the Eclipse Public License, the same as Clojure.