pie

The smarter JS build tool

           /$$
          |__/
  /$$$$$$  /$$  /$$$$$$
 /$$__  $$| $$ /$$__  $$
| $$  \ $$| $$| $$$$$$$$
| $$  | $$| $$| $$_____/
| $$$$$$$/| $$|  $$$$$$$
| $$____/ |__/ \_______/
| $$
| $$
|__/

pie is a build tool for Node.js-based projects. It's similar to Cake, but adds smart dependency tracking so only the files that need to get rebuilt will be (like good old Make).

If you're experiencing pain using Cake or Rake or even Make for large JS projects, pie may just be your answer.

  • Flexible DSL for defining exactly the tasks and build targets you need (loose superset of Cake syntax)
  • Smart dependecy tracking for fast incremental builds
  • Built-in auto-watch with smart recalculation of changes
  • Customizable command-line switches
  • Fast in-VM compilation of CoffeeScript, LESS, and Handlebars files (and very easy to add new ones)
  • Very fast for running git bisect on large projects due to fast incremental builds
  • Growl notifications for build completion & errors
$ npm install pie -g

For a very simple one, see the Piefile for this project: http://github.com/kenpratt/pie/blob/master/Piefile

$ pie
$ pie watch

If you get Error: watch EMFILE, try increasing your open file discriptor limit. You can add this to your .bashrc or .zshrc to have it apply on boot.

$ ulimit -n 1024
$ pie clean build
$ pie clean
$ pie -T
$ git clone https://github.com/kenpratt/pie.git
$ cd pie
$ npm install
$ ./bin/bootstrap
$ pie
$ pie -T

Copyright (c) 2012 Ken Pratt. See LICENSE for details.