gapify

Command-line tool to compile Express apps into PhoneGap apps

Usage no npm install needed!

<script type="module">
  import gapify from 'https://cdn.skypack.dev/gapify';
</script>

README

Gapify

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.

Configuration

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/tree.coffee", // file type is inferred from extension
         "to":"{out}/js/tree.js" // `{out}` is replaced by output directory
      },
      {
         "from":"assets/css/skin.styl",
         "to":"{out}/css/skin.css"
      },
      {
         "from":"assets/css/lib/fannect.css",
         "to":"{out}/css/lib/fannect.css"
      },
      {
         "from":"public/images", // directories can be copied (included subdirectories)
         "to":"{out}/images"
      }
   ],
   "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

Install

npm install -g gapify

Command-line Options

   Usage: gapify [options] [command]
   
   Commands:
   
      build                   compile files into output directory
      watch                   watch for file
      
   Options:
   
      -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