compy - lightweight single app builder/compiller
Compy is a lightweight approach for developing single page apps (framework/lib agnostic).
Based on TJ's component.io 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 by just requiring them like in node.js
- providing local
require
- seting up local static server with livereload
- supporting componentjs packages
- being flexible and grunt extendable
watch screencast for details
todo:
- instant karma based tests
##install
$ npm install compy -g
cli comands
install[:<component>]
- installs components from dependencies. With argument installs component, automatically saves it inside package.jsoncompile
- compiles the project in dist
folderserver[:watch]
- runs simple http server for dist folder. With watch
argument server watches the changes in source and recompiles the project.build
- builds (compiles + minifies) the project in dist
folder
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": "*",
"component/tip": "*",
"component/s3": "*"
},
"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