Command-line tool to compile Express apps into PhoneGap apps
CoffeeScript JavaScript CSS
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Command-line tool to compile Express apps into PhoneGap apps

Build Status

It turned out to be a fairly flexible tool that can be used by anyone who wants to move files around and compile CoffeeScript, Jade, or Stylus files. More files types should be supported soon.

Note: This was quickly thrown together and isn't what I would consider stable. Just keep this in mind.


Gapify relies on a configuration file, gapify.json, in the root directory. Here is a sample configuration.

   "output": "./bin", // specifies the output directory
   "assets": [
         "from":"assets/js/", // file type is inferred from extension
         "to":"{out}/js/tree.js" // `{out}` is replaced by output directory
         "from":"public/images", // directories can be copied (included subdirectories)
   "views": {
      "directory":"views", // directory of all the Jade templates
      "ignore":["layout.jade"] // files that are layouts and should be ignored
   "default_command": "GitCheckIn", // Command run by default on success
   "commands": { // this section allows for terminal commands to be executed on success compilation
      "GitCheckIn": [
            "command": "git add . -A", // commands are executed with output directory as the working directory
            "on_error": "stop" // does NOT execute following commands on an error
            "command": "git commit -m \"Auto update by Gapify.\"",
            "on_error": "continue" // DOES execute following commands on an error
            "command": "git push origin master",
            "on_error": "stop"

When using PhoneGap, file paths using the root (such as /blah) are not resolved correctly. To compensate, the folder structure of the views is flattened and all files in the view directory are renamed according to their previous folder structure.

Example: sub/example.jade -> sub-example.html


npm install -g gapify

Command-line Options

   Usage: gapify [options] [command]
      build                   compile files into output directory
      watch                   watch for file
      -h, --help              output usage information
      -o, --output <path>     change the output directory, overrides config file
      -c, --chdir <path>      change the working directory
      -e, --empty             empties output directory before compilation (excluding .gt and .gitignore)
      -r, --run <command>     runs command after successful build
      -d, --debug             does not minify JS and CSS
      -s, --silent            suppresses console output

Running the Tests

npm test