/backbone-boilerplate

A workflow for building Backbone.js applications.

Primary LanguageJavaScriptMIT LicenseMIT

Boilerplate

Build Status Coverage Status Dependency Status

Backbone Boilerplate

This boilerplate is the product of much research and frustration. Existing boilerplates freely modify Backbone core, lack a build process, and are very prescriptive; Backbone Boilerplate changes that.

The Backbone Boilerplate is a way of organizing a web application with some opinionated defaults: such as Backbone, Lo-Dash (Underscore compatibility build), jQuery, RequireJS, Bower, Grunt, Karma, and the HTML5 Boilerplate styles. Built in testing support for: QUnit, Jasmine, and Mocha with Chai.

Organize your application with a logical file structure, develop your Models/Collections/Views/Routers inside modules, and build knowing you have efficient code that will not bottleneck your users.

Thanks to our Contributors! Special Thanks to: cowboy, iros, nimbupani, wookiehangover, and jugglinmike for helping me create this project. Extra Special Thanks to: Paul Guinan for giving me usage rights to his fantastic Boilerplate character.

Documentation

View the Backbone Boilerplate documentation here:

GitHub Wiki

Getting started

The easiest way to get started is to install Git and clone the repository:

# Using Git, fetch only the latest commits.  You won't need the full history
# for your project.
git clone --depth 1 https://github.com/backbone-boilerplate/backbone-boilerplate

# Move the repository to your own project name.
mv backbone-boilerplate my-project

You will need to download and install Node.js if you want to use the commands in the following sections.

Updating dependencies

Third party packages may update independently from this main repo, so it's a good idea to update after fetching.

# Install global dependencies.  Depending on your user account you may need to
# gain elevated privileges using something like `sudo`.
npm install -g grunt-cli bower

# Optionally install coveralls (integration is baked in with Travis CI).
npm install -g coveralls

# Install NPM dependencies.
npm install

# Install Bower dependencies.
bower install

Build process

The build process consists of numerous Grunt plugin tasks that work together to optimize your application.

# To run the build process, run the default Grunt task.
grunt

# Run a build and test the now optimized assets.
grunt default server:release

Running tests

To run tests, simply add .spec.js files throughout your application and they will be automatically picked up by the runner. You can find example test specs in the test directory.

To run Karma as a daemon: Which will automatically run your tests after you save.

grunt karma:daemon

To run Karma tests once and output the results:

grunt karma:run

After either above command is run, code coverage reports will be available in the test/coverage folder.

By default, the test runner is Mocha and Chai. You can easily change this by editting the commented regions of the karma configuration in Gruntfile.js.

License

Copyright © 2014 Tim Branyen (@tbranyen)
Licensed under the MIT license.