- jQuery (for core awesome-sauce, e.g. DOM manipulation, AJAX network requests, Promises/Deferreds)
- RequireJS (for Asynchronous Module Definition, async script loading, and dependency management)
- Backbone.js (for MV* structuring)
- Underscore.js (for client-side templating) — Not a huge fan, really only using it because it’s integrated with Backbone.js)
- JsMockito (for mocking) — I’ve heard praise that Sinon.js is better. Any feedback?
- JSCoverage (for code coverage) — Isn’t there something better than this yet? Can someone explain how I can use NodeCover to gather the same/better metrics?
- PhantomJS (for headless execution of unit tests during CI) — Rocks so hard!
- JSDoc Toolkit (for documentation generation from comments)
- Ant plus Ant Contrib (for main build) — Old, I know, but struggling to find better alternatives. Do you know of any?
- Rhino (for running the r.js optimizer via Ant)
- JetBrains WebStorm (for IDE on Windows)
- SASS (for “more awesomer” CSS)
- IE Dev Tools, Firebug, & Chrome Dev Tools (for debugging)
- Node.js (as potential replacement of Ant as a build tool, as potential replacement of Jetty as an on-demand HTTP server, and other experimental purposes)
- TestSwarm (for cross-browser unit testing during CI)
- Beautiful reporting grid output
- Requires pre-attachment of browsers
- Definitely alpha software, though
- Selenium Grid (for cross-browser unit testing during CI)
- Much more robust than TestSwarm
- Can launch its own browsers
- Crappy reporting output
Evaluated and didn’t see any immediate use for:
- Dart (laughably heavy, plus yucky old Java syntax)
- Jasmine / Pavlov (for BDD testing)
- JsUnit (used to use it for unit testing before QUnit)
- Knockout (preferred Backbone)
Help me out!
Do you know of tools I should utilize for use cases not mentioned (e.g. tool to detect changes to JS/CSS and auto-refresh my browsers)? Do you know of better alternatives for a given use case mentioned above? If so, I’d love to hear about it! Please leave a [constructive] comment.