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.
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.
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
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
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
.
Copyright © 2014 Tim Branyen (@tbranyen)
Licensed under the MIT license.