DEPRECATION WARNING
Tapas with Ember will not be maintained after Ember 2.0 is released. Please use Ember CLI instead.
Tapas with Ember
A Brunch skeleton for rapid Ember development. Including Ember installation scripts, environment-specific builds, generators, and Ember.vim support.
- Features
- Setup
- Testing
- Frequently Asked Questions
- Technology
- Updating Libraries
- Generators
- Compiling for Production
- Deploy
- Scripts
- Pow.cx
- Ember.vim Support
- Updating Tapas with Ember
- Thanks To
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. Automatically 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.
Setup
Before using Tapas with Ember you will need to install Node, CoffeeScript, Brunch, and Bower.
npm install -g brunch coffee-script bower
Now that you've got Brunch installed, you're three commands away from a running Ember app!
brunch new gh:mutewinter/tapas-with-ember <appname>
cd <appname>
cake server
Open localhost:7435
and check out your brand new
Ember app! Every time you save a file, the browser will automatically refresh.
Tapas with Ember runs the latest release channel Ember and latest beta of Ember
Data. You can update to Beta or Canary builds using cake ember:install
. It's
also easy to install the latest Ember Data or Ember Model using the cake
scripts below.
Testing
To run run tests headlessly you'll need need to install phantomjs.
brew update && brew install phantomjs
Running Tests Once
npm test
This command will install all dependencies, build the application in the test environment, and run the tests.
Running Tests Automatically
In two terminal sessions, run these commands:
npm run-script test:watch
cake test:watch
Testem will now rerun tests every time your app code changes. You can switch
test:watch
to test:server
if you'd also like to manually interact with the
app on http://localhost:7435.
Testing in Other Browsers
If you want to run your tests on other browsers, modify your testem.yml
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
.
Frequently Asked Questions
See the FAQ in the Wiki for answers to questions like:
- How do I add a JavaScript / CSS Library?
- How do I add Bootstrap?
- How do I detect the environment?
- How do I set Ember feature flags?
Technology
- Ember 1.9.1
- Ember Data 1.0.0-beta.9
- Brunch 1.8.03
- Bower
- Handlebars 1.3.0
- jQuery 1.11.0
- CoffeeScript 1.8.0
- Stylus
- HTML5 Boilerplate
- Normalize.css
- Optional Ember Model
This will always say out of date because I'm using jQuery 1.X for IE compatibility.
Updating Libraries
Ember
Tapas with Ember ships with the latest release channel Ember. You can install other versions of Ember using the commands below.
cake ember:install
# cake -t "v1.9.1" ember:install # for v1.9.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.
Ember Data
cake ember-data:install
# cake -t "v1.0.0-beta.9" ember-data:install # for v1.0.0-beta.9 tagged release
# cake -c "canary" ember-data:install # for canary
Note: cake ember-data:list
displays all tagged releases.
Ember Model
cake ember-model:install
Note: Ember Model can not be used with Ember Data.
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/template/<name>.hbs
scaffolt view <name> β app/views/<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 with hashed file names, run:
cake build
Now the public
folder will contain your production-ready Ember app.
Deploy
Tapas with Ember comes with a Mina deployment script to deploy your app to your own server.
- Install Mina by running
gem install mina
- Fill in your credentials in
config/deploy.rb
- Setup your server, I use Nginx with this config
- Run
mina setup
- Run
mina deploy
Scripts
The following cake
scripts are provided.
cake server # start the brunch server in development
cake watch # build the app continuously without a server
cake build # build for production
cake build:test # build for test
cake test:watch # run brunch in test environment and watch for changes
cake test:server # run brunch in test environment, watch for changes, and run server
cake tapas:update # update Tapas to latest (Cakefile, package.json, portkey.json, config.coffee, generators/*)
cake ember:install # install latest Ember
cake ember:list # list tagged relases of Ember since v1.0.0
cake ember-data:install # install latest Ember Data
cake ember-data:list # list tagged relases of Ember Data
cake ember-model:install # install latest Ember Model
The following npm
scripts are provided
npm test # Install dependencies, build for test, run tests
npm run-script test:watch # Run tests continuously when files change
Pow.cx
To use this app with Pow.cx, follow these simple steps:
- Install Pow.cx
echo 7435 > ~/.pow/<appname>
- Start the server with
cake server
- Open http://appname.dev
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/utilities/<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 overwrites Cakefile
, package.json
, portkey.json
,
config.coffee
, generators/*
.
Thanks To
- @gcollazo for making brunch-with-ember-reloaded, which Tapas with Ember is based on.
- @cavneb for his excellent contributions via his fork, yet-another-ember-brunch.