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 by:
- allowing you to use installed components without any configurations by just requiring them.
- providing local
require
- supporting coffeescript, sass, jade and other plugins
- giving you livereload with simple static server
watch screencast for details [some of functionality was changed in 0.1.3]
##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:
##install
$ npm install compy -g
cli comands
Usage: compy <command> [options]
Options:
-h, --help output usage information
-V, --version output the version number
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
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"
}
}
what's about grunt?
Compy is basically a grunt file that does all the magic. You can check it here
That also mean that is you want to use grunt in your project, you need to know some details.
You can create local Grintfile.js
inside your project. To run tasks though instead of grunt <taskname>
you need to do compy <taskname>
There are compile
and build
tasks which you can extend/change. Original tasks have aliases compy-compile
and compy-build
(src)
So if you want to precompile something, your grunt file will look like:
...
grunt.registerTask('compile',['<precompileTask>','compy-compile'])
...
license
MIT