The Lab: The Great Grunt Shootout
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.idea
build
node_modules
src
.gitignore
Gruntfile.js
Gulpfile.js
Jakefile.js
LICENSE.TXT
Procfile
ci.bat
ci.jakefile
ci.sh
deploy.bat
deploy.jakefile
deploy.sh
grunt.bat
grunt.sh
gulp.bat
gulp.sh
jake.bat
jake.sh
readme.md

readme.md

The Lab: The Great Grunt Shootout

This repository contains the source code for the above Lab episode of James Shore's Let's Code: Test-Driven JavaScript screencast. Let's Code: Test-Driven JavaScript is a screencast series focused on rigorous, professional JavaScript development.

This episode was focused on comparing Grunt and Jake, two automated build tools for JavaScript. Grunt was evaluated in comparison to Jake by reimplementing the Automatopia project's primary build script in Grunt.

To evaluate the results yourself, compare Gruntfile.js to Jakefile.js. For more information, watch the screencast.

Update, 11 January 2014: Added a Gulp implementation of the build. See Gulpfile.js and compare it to Gruntfile.js and Jakefile.js.

Building and Testing

Before building for the first time:

  1. Install Node.js.
  2. Download and unzip the source code into a convenient directory.
  3. All commands must run from the root of the source tree: cd <directory>.
  4. To cause the build to fail unless certain browsers are tested, edit REQUIRED_BROWSERS at the top of Jakefile.js and in requiredBrowsers config section of Gruntfile.js. Otherwise, comment those lines out.

To build (and test):

  1. Run ./jake.sh karma (Unix/Mac) or jake karma (Windows) to start the Karma server.
  2. Start the browsers you want to test and point each one at http://localhost:8080.
  3. Run ./jake.sh (Unix/Mac) or jake (Windows) every time you want to build and test.

Use ./grunt.sh (or grunt on Windows) instead of ./jake.sh (or jake) to use Grunt instead of Jake. Use ./gulp.sh (or gulp) to use Gulp.

License

MIT License. See LICENSE.TXT.