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:
- you can install and use components without any configurations
- you can use local
- you can use coffeescript, sass, jade and other plugins
- you can run karma tests
- you will have livereload with simple static server
watch screencast for live intro.
$ npm install compy -g
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:
- rschmukler/component-stylus-plugin — precompile stylus
- segmentio/component-jade — precompile jade templates
- anthonyshort/component-coffee - require CoffeeScript files as scripts
- anthonyshort/component-sass - compile Sass files using node-sass
- kewah/component-builder-handlebars - precompile Handlebars templates
- ericgj/component-hogan - Mustache transpiler for component (using Hogan)
- segmentio/component-sass — Sass transpiler for component
- queckezz/component-roole — Compile Roole files
- bscomp/component-lesser - LESS transpiler for compy
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
The configuration for compy sits in package.json inside compy namespace.
main is an entry point of your app and the only required property.
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:
And plugins should be installed locally.
$ npm install karma-mocha karma-sinon-chai karma-phantomjs-launcher
compy test all *.spec.js files will be runned as a mocha tests.