edjafarov / compy

lightweight html app builder
19 stars 2 forks source link

NPM version Dependency Status Build Status compy - lightweight app builder/compiller

Compy is a lightweight approach for developing web apps (framework/lib agnostic). Based on TJ's component package manager it allows you to install components and use them in your code right away. Compy makes your development fun because:

watch screencast for live intro.

install

$ npm install compy -g

plugins

compy can use component's plugins to extend it's functionality. For example if you want to use coffee in your project, you need to npm install component-coffee in your project's folder.

compy was tested with following plugins:

cli comands

  Usage: compy <command> [options]

  Options:

    -h, --help                 output usage information
    -V, --version              output the version number
    -d, --dir <path>           project source path. Must contain package.json
    -o, --output <path>        output directory for build/compile
    -v, --verbose              verbosity
    -f, --force                force installation of packages
    -s, --staticServer <path>  custom server that serves static with compy middleware
        --dev                  install dev dependencies

  Commands:

    install [name ...]      install dependencies or component
    compile                 compile app (in dist folder by default)
    build                   build the app (compile and minify sources)
    server [watch]          run static server. If "watch" option enabled - watch changes, recompile and push livereload
    test                    run karma tests
    watch                   watch and rebuild assets on change
    plate [appname]         generate boilerplate package.json
    graph                   show all dependencies/versions installed

config

The configuration for compy sits in package.json inside compy namespace. main is an entry point of your app and the only required property.

{
  "name": "appName",
  "version": "0.0.0",
  "description": "my awesome app",
  "main": "index.js",
  "license": "BSD",
  "compy": {
    "dependencies": {
      "component/jquery": "*"
    },
    "main": "app.js"
  }
}

writing tests

To run karma based tests with compy. The package.json configuration should be adjusted and all required karma plugins should be installed. For example to run mocha tests with sinon and chai inside phantomjs following configurations should be set:

{
  ...
  "compy":{
     ...
     "tests":{
      "frameworks":[
        "mocha", "sinon-chai"
      ],
      "plugins":[
        "karma-mocha",
        "karma-sinon-chai",
        "karma-phantomjs-launcher"
      ]
    }
  }
}

And plugins should be installed locally.

$ npm install karma-mocha karma-sinon-chai karma-phantomjs-launcher

now with compy test all *.spec.js files will be runned as a mocha tests.

license

MIT