generator-closure-stack v0.0.4
GENERATOR-CLOSURE-STACK
Client-heavy stack for node development.
The stack:
- Node: Server side JavaScript
- Grunt: Task automation
- Bower: Third-pary client libraries
- Express: Web server for node
- LESS CSS: Programmatic CSS
- Closure Compiler: Type safe and minified JavaScript
- Closure Templates: Generate JavaScript for creating html
Quick install
Download + run bootstrap.sh (this will install a local version of node, grunt and yeoman).
Alternative install
- Install node + npm
npm install -g grunt yo generator-closure-stackyo closure-stackgrunt setup
To run
grunt run:dev
Limitations / todos
- does not make use of closure builder to assemble client JS
- closure library is only used for namespacing
Folder structure
src code for your application
src/client code run in the browser
src/client/js javascript (and externs) run in the browser
src/client/js/externs extern files for the closure compiler
src/client/js/third_party third party code that is included directly on the page, bypassing closure compiler (except for
an extern)
src/client/js/JS_NAMESPACE js code for your application
src/client/js/listing.json an ordered listing of code for your application
src/client/less LESS stylesheets for your application
src/client/soy soy templates for your application
src/server code run on the server
src/server/js javascript run on the server
src/server/soy soy templates used on the server.
src/tasks grunt tasks
config app configuration (like server port, common paths etc) used by grunt tasks. New files are automatically imported
as grunt configs and can cross-reference each other.
build output of compilation tasks like conversion of less to css, soy templates to javascript, and closure JS compilation.
dependencies needed binaries like node and the closure/soy compiler jars.
node_modules node dependencies.