Maintainer: Anthony Bull
The scaffolding tool for Ember.js apps.
- npm
npm install -g grunt-contrib-compass
- Ruby
You should have one path each for:
which ruby && which compass
npm install -g generator-ember
mkdir myemberapp && cd myemberapp
(The directory's name is your application's name)yo ember
npm install -g grunt-mocha
grunt server
A welcome page should appear in your browser.
Add'l generators:
- ember:model
- ember:view
- ember:controller
Creates a model, views, handlebars, controllers, view/edit routes, and some basic fixtures given an arg, as in:
yo ember:model User name:string zipcode:number
see:
see also:
Creates a view and template given an arg, as in
yo ember:view Foo
KNOWN ISSUE: IF YOU ADD A NEW VIEW, REGARDLESS OF WITH WHICH GENERATOR, YOU HAVE TO RESTART THE SERVER.
Creates a view, handlebar, controller and route given an arg, as in:
yo ember:controller Bar
(and updates router.js, overwrite when prompted)
see:
-
--skip-install
Skips the automatic execution of
bower
andnpm
after scaffolding has finished. -
--test-framework=[framework]
Defaults to
mocha
. Can be switched for another supported testing framework likejasmine
. -
--coffee
Enable support for CoffeeScript.
-
--karma
Enables support for karma test runner
Testing your app is as simple as running grunt test
. The generator ships with the
karma test runner for running the tests. Integration
tests are written with ember-testing
and preferably mocha. Karma is highly configurable and you can take a look at the varity of options
on its website.
Manifests as: -bash: yo: command not found
You need to make sure that npm is on your path. Add the following to your .bash_profile (or .bashrc):
PATH=/usr/local/share/npm/bin:$PATH
Manifests as: You specified the templateName ... but it did not exist.
You probably added a view; restart the server.
See the changelog file
- Change tests to instantiate and test objects instead of grepping for text
- DRY up/refactor tests
- Consider ES6 as base structure
- Remove Ruby dependency
See the contributing docs
When submitting an issue, please follow the guidelines. Especially important is to make sure Yeoman is up-to-date, and providing the command or commands that cause the issue.
When submitting a bugfix, write a test that exposes the bug and fails before applying your fix. Submit the test alongside the fix.
When submitting a new feature, add tests that cover the feature.
Here are some of the techniques I use; maybe they're useful for you.
When developing...
- in generator-ember dir,
npm link
to use what's in the local repo foryo ember
- wipe the example webapp dir clean (
cd .. && rm -rf webapp
) from time-to-time to ensure the code output is coming from the latest generator (will re-install everything via npm, so be forewarned) - script/reset_dev_env.sh is there to help when you don't want to wipe and reinstall a test dir with Bower and Node modules again-and-again; read it and understand it before you use it. It's good if you want to smoke-test changes, bad if you update Bower and/or Node mods (ignores removing their subdirs.)
- Originally inspired by the Ember Starter Kit
- Taking influence from ember_data_example