Tapas with Ember
February 3, 2014 · View on GitHub
A Brunch skeleton for rapid Ember development. Including Ember installation scripts, environment-specific JS builds, generators, and Ember.vim support.
Technology
- Brunch
- Ember
- CoffeeScript
- Less
- Handlebars
- HTML5 Boilerplate
- Normalize.css
- CannedJS
- Optional Ember Data
- Optional Ember Model
Features
- Ember Install Script - Cakefile scripts to install the latest Ember, Ember Data, and Ember Model.
- Environments - Custom code to allow for environment detection in the browser and at compile time. Automagically uses Ember's production build when in production just like ember-rails.
- Automatic File Loading - Automatically loads you code, no script tags or superfluous requires necessary.
- Ember.vim support - Navigate to and create models, controllers, templates, and views with ease.
Brunch Plugins
- digest-brunch - Add a unique SHA to your assets in your production build.
- auto-reload-brunch - Adds automatic browser reloading support to Brunch.
- uglify-js-brunch - Adds UglifyJS minification support to Brunch.
Requirements
Before using Tapas with Ember you will need to install Node, CoffeeScript, and Brunch.
npm install -g brunch coffee
Quick Start
Now that you've got Brunch installed, you're three commands away from a running Ember app!
brunch new gh:cavneb/tapas-with-ember <appname>
cd <appname>
cake server
Open localhost:3333 and check out your brand new
Ember app! Code changes you make will be automatically loaded in the browser.
Edit index_route.coffee to see live-updating
in action.
Tapas with Ember runs Ember 1.3.1 out of the box. You can update to Beta or
Canary builds using the command below. It's also easy to install the latest
Ember Data or Ember Model using the cake scripts below.
Deploying
Tapas with Ember comes with a Mina deployment script.
- Install Mina by running
gem install mina - Fill in your credentials in
config/deploy.rb - Run
mina setup - Run
mina deploy
Frequently Asked Questions
See the FAQ in the Wiki.
Updating Libraries
Install Latest Ember
Tapas with Ember ships with Ember 1.3.1 already installed. You can update to the latest release from each channel by using the commands below.
cake ember:install
# cake -t "v1.3.1" ember:install # for v1.3.1 tagged release
# cake -c "beta" ember:install # for beta
# cake -c "canary" ember:install # for canary
Note: cake ember:list displays the tagged releases since 1.0.0.
Install Latest Ember Data Beta
cake ember-data:install
# cake -t "v1.0.0-beta.4" ember-data:install # for v1.0.0-beta.4 tagged release
# cake -c "canary" ember-data:install # for canary
Note: cake ember-data:list displays all tagged releases.
Install Latest Ember Model
cake ember-model:install
Install Latest Handlebars
cake handlebars:install
Generators
This skeleton makes use of scaffolt generators to help you create common files quicker.
To use first install scaffolt globally with npm install -g scaffolt. Then you
can use the following command to generate files.
scaffolt arraycontroller <name> → app/controllers/<name>s.coffee
scaffolt component <name> → app/components/<name>.coffee
app/templates/components/<name>.hbs
scaffolt controller <name> → app/controllers/<name>.coffee
scaffolt helper <name> → app/helpers/<name>.coffee
scaffolt initializer <name> → app/initializers/<name>.coffee
scaffolt mixin <name> → app/mixins/<name>.coffee
scaffolt model <name> → app/models/name.coffee
scaffolt route <name> → app/routes/<name>.coffee
scaffolt router → app/config/router.coffee
scaffolt template <name> → app/<name>.hbs
scaffolt view <name> → app/views/<name>.coffee
scaffolt lib <name> → app/libs/<name>.coffee
Compiling for Production
Both the development and production versions of Ember are installed via
the ember:install cake task. To compile your project with the production
version of Ember, run the following command:
cake build
Scripts
The following cake scripts are provided.
cake server # start the brunch server in development
cake build # build for production (delete public folder first)
cake ember:install # install latest Ember
cake ember-data:install # install latest Ember Data
cake ember-model:install # install latest Ember Model
cake handlebars:install # install latest Handlebars
Pow.cx
To use this app with Pow.cx, follow these simple steps:
- Install Pow.cx
echo 3333 > ~/.pow/<appname>- Start the server with
cake server - Open tapas-with-ember.dev
Testing
To run you will need Testem and you will need to install phantomjs.
brew update && brew install phantomjs
To run tests continiously as you write code and tests (for now) you must open two terminal windows. One running brunch to continiously build the application and the other running testem.
$> cake test # starts brunch in test environment
$> npm test # starts testem
If you want to run your tests on other browsers, modify your testem.json file
to include the additional browsers. For example:
"launch_in_dev": ["PhantomJS", "Chrome", "Firefox", "Safari"]
You can see a list of available launchers by running the command testem launchers.
Ember.vim Support
Custom Ember.vim support is provided via
portkey.json. You can navigate to files via these
commands:
:Eadapter
:Easset <name> → app/assets/<name>
:Ecomponent <name> → app/components/<name>.coffee
:Econfig <name> → app/config/<name>.coffee
:Econtroller <name> → app/controllers/<name>.coffee
:Ehelper <name> → app/helpers/<name>.coffee
:Einitialize
:Einitializer <name> → app/initializers/<name>.coffee
:Emixin <name> → app/mixins/<name>.coffee
:Emodel <name> → app/models/<name>.coffee
:Eroute <name> → app/routes/<name>.coffee
:Estyle <name> → app/styles/<name>.styl
:Etemplate <name> → app/templates/<name>.hbs
:Etest <name> → test/<name>_test.coffee
:Eutility <name> → app/utility/<name>.coffee
:Eview <name> → app/views/<name>.coffee
Updating Tapas with Ember
Tapas with Ember has a built-in update script.
cake tapas:update
It updates and overwites Cakefile, package.json, portkey.json,
config.coffee, generators/*.
Thanks To
- @mutewinter for making vital changes to the original skeleton. YAEB is based on this skeleton.
- @gcollazo for making brunch-with-ember-reloaded, which Tapas with Ember is based on.
