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
require
- 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.
##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:
- 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
- segmentio/component-json — Require JSON files as Javascript.
- queckezz/component-roole — Compile Roole files
- bscomp/component-lesser - LESS transpiler for compy
- segmentio/component-markdown - Compile Markdown templates and make them available as Javascript strings.
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.
{
"name": "appName",
"version": "0.0.0",
"description": "my awesome app",
"main": "index.js",
"license": "BSD",
"compy": {
"dependencies": {
"component/jquery": "*"
},
"main": "app.js"
}
}
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.
MIT