node package manager
Orgs are free. Discover, share, and reuse code in your team. Create a free org »

generator-marionette-coffee

generator-marionette-coffee Build Status

Yeoman generator for marrionette app written in coffescript

  • Starting point for new marionette project

  • includes hello world module example

  • using boilerplate express server

Whats included
  • Marionette
  • Coffeescript
  • AMD configuration using Requirejs
  • jQuery Templating
  • Twitter Bootstrap (optional)
  • Mocha unit tests with html testrunner as well as grunt task that will run them headless using phantomjs
  • Organized using module pattern
    • for more information about the module pattern with marionette, I highly recommend David Sulac's book on Marionette.js

To Install

This generator depends on phantomJS, mongoDb, yeoman, bower and grunt

Install phantomJS

$ brew install phantomjs

Install mongoDb

$ brew install mongodb

Install mocha-phantomjs:

$ npm install -g mocha-phantomjs

Install Yeoman, Bower and Grunt: $ npm install -g yo grunt-cli bower Install this generator

$ npm install -g generator-marionette-coffee

Usage

scaffold a new app:

$ mkdir your-app-name && cd your-app-name
$ yo marionette-coffee

optionally if you wish to leave out the hello world example you can run with --empty option

$ mkdir your-app-name && cd your-app-name
$ yo marionette-coffee --empty

Directory Structure

  • ____app/

  • index.html (Generated from template.html)

  • r.js optimizer

  • template.html generates html template for index files in app/ and dist/ for more info see targetHtml

  • ____assets/

    • ____coffee/ all coffeescript in folder will be compiled to js/ folder

      • ____app.coffee0

        • ____apps/
          • ____sub_app/ for sub-application folders

            • ____sub_app.coffee mediator for sub_application
      • ____build.js build configuration for r.js

      • ____entities/ for entity files

      • ____require_main.coffee main configuration file

    • ____css/

  • server/

    • ____app.js express server
  • ____test/

    • ____coffee/ coffeescript for test specs

    • ____spec/ where the specs written in coffeescript are compiled to

    • ____SpecRunner.coffee Requirejs configuration for tests

    • ____TestRunner.html

Grunt Tasks

$ grunt

Default grunt task will

  • copy template files in coffee to js folder
  • compile coffeescript
  • create index file for app folder
  • start background express server
  • start background connect server (for testrunner)
  • run headless mocha tests
  • open testrunner & app page in browser
  • watch your files for any changes and reload if there are any
$ grunt build

Default grunt task will

  • copy template files in coffee to js folder
  • compile coffeescript
  • create index file for app folder
  • start background express server
  • start background connect server (for testrunner)
  • run headless mocha tests
  • create single optimized file for all js
  • open optimized app in browser
Still In development
  • SubGenerators
  • application module
  • entities

License

MIT

Another great marionette generator worth checking out