Description
jslint-v8 is simply a ruby wrapper that helps you run JSHint as an automated code quality standards tool inside your projects. It's geared towards being run in a continuous integration process (CI), such as Jenkins.
While it is focused on Ruby projects it can just as easily be used for any other language out there so long as you have Ruby installed on your system.
Like it's name implies we run JSHint on the JavaScript V8 interpreter so, in other words, it runs really really fast.
How to use
-
Make sure you have Ruby and Rubygems installed on your computer (most operating systems except for Windows have this already)
-
In your console run:
gem install jslint-v8
-
Run the following command
jslint-v8 path/to/file.js
For full details on using the command line interface simply type jslint-v8 --help
into your console
Default options
You can see which options are enabled by default by examining the output of jslint-v8 --help
Rake Task
In addition to the CLI you can also set up a Rake task to automatically run against a set of files. Inside your Rakefile add the following:
require 'rake'
require 'jslint-v8'
namespace :js do
JSLintV8::RakeTask.new do |task|
task.name = "lint"
task.description = "runs jslint against all important javascript files"
task.output_stream = STDOUT
task.include_pattern = "app/javascripts/**/*.js"
task.exclude_pattern = "app/javascripts/{generated,lib}/**/*.js"
# pass boolean options to jshint like this, these are merged with the default options
task.jquery = true # predefine jQuery globals
task.browser = true # predefine Browser globals
task.bitwise = false # allow bitwise operators to be used
# or just access the options hash directly, be sure to use strings for keys
task.lint_options["strict"] = true
end
end
Modify the above as needed.
The code above:
- generates a rake task named "js:lint" with the given description
- write results to standard output (STDOUT)
- run against all javascript files under
app/javascripts
except underapp/javascripts/lib
andapp/javascripts/generated
- runs with all the default jshint options enabled except bitwise, but also enabling strict, jquery and browser
Contributing
Whatever works, but my preference is for you to fork this repository on github and write your changes on a separate branch. When finished you can send them to me by issuing a pull request.
Feature Requests / Suggestions
You can open up an Issue here on Github or if you'd prefer send me a message here on Github, please try and give me a good use case for your feature request / suggestion.
License
jslint-v8 is released under the MIT license