Appendix B. JavaScript Tools

Build Tools

Though many build tools are not JavaScript-specific, they can still be quite useful in managing your large JavaScript projects:

Ant

My preferred build tool for JavaScript projects. A Java-based build system.

Buildy

A Node.js-based build system with built-in support for tasks related to JavaScript and CSS.

Gmake

An older build tool that’s still popular among Unix devotees. Gmake is used by jQuery.

Grunt

A Node.js-based build system with built-in support for JavaScript-related tasks like minification and concatenation.

Jammit

A Ruby-based asset packager that handles minification, validation, and more.

Jasy

A Python-based build system.

Rake

A utility similar to Gmake written in Ruby. Projects that use Sass, a popular CSS preprocessor, tend to use Rake.

Sprockets

A Rack-based build system.

Documentation Generators

Documentation generators create documentation from comments placed in source code:

Docco

A side-by-side documentation generator, showing documents alongside code. Written in CoffeeScript.

Dojo Documentation Tools

The official documentation generator of Dojo. Written in PHP.

JoDoc

A JavaScript documentation generator that uses Markdown syntax. Written in JavaScript.

JSDoc ToolKit

A Java-based documentation generator. One of the most frequently used documentation generators.

Natural Docs

A general-purpose documentation generator that works with multiple languages. Written in Perl.

NDoc

A JavaScript port of PDoc.

PDoc

The official documentation generator of Prototype. Written in Ruby.

YUI Doc

The YUI documentation generator. Written in JavaScript.

Linting Tools

Linting tools help identify problematic styles and patterns in your code:

JSLint

Douglas Crockford’s code-quality tool.

JSHint

A fork of JSLint with more configurable options.

Minification Tools

Minification tools make JavaScript files smaller by removing unnecessary comments and white space and perhaps performing other code optimization.

Closure Compiler

Google’s Java-based JavaScript minifier.

UglifyJS

A Node.js-based JavaScript minifier.

YUI Compressor

A Java-based JavaScript and CSS minifier.

Testing Tools

Testing tools allow you to write and execute tests that verify the behavior of your code:

Jasmine

A behavior-driven JavaScript testing framework.

JsTestDriver

The Google unit test framework, which includes automated browser testing.

PhantomJS

A headless WebKit browser designed for testing. Can be used with QUnit and Jasmine by default and others through a driver system.

QUnit

The jQuery unit testing framework.

Selenium

A functional testing framework that can be used for browser testing.

Yeti

A test harness for JavaScript testing in browsers.

YUI Test

The YUI unit testing framework.