The Ember.js generator aims to provide intelligent scaffolding for Ember.js web applications, offering a sane project structure, dependency management, and build-time optimization for your scripts, stylesheets and assets. It is a complement to Ember App Kit and can be used on its own or in conjunction with another set of tools or boilerplates.
This project is an ongoing community effort, and efforts to find the easiest ways to architect applications continue. We welcome your issues and PRs for features, bug fixes, and anything that would improve your quality of life as an Ember developer.
Table of Contents
You should have one path each for:
which ruby && which compass
You can either get started using the guide in our documentation lower down or via one of the community-authored tutorials about this generator.
npm install -g generator-ember
mkdir myemberapp && cd myemberapp(The directory's name is your application's name)
npm install -g grunt-mocha
A welcome page should appear in your browser.
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
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)
Creates a component and a template for that component given an arg, as in:
yo ember:component x-player
Which can be used in the application with
Skips the automatic execution of
npmafter scaffolding has finished.
mocha. Can be switched for another supported testing framework like
Enable support for CoffeeScript.
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.
Command not found
-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):
You specified the templateName ... but it did not exist.
You probably added a view; restart the server.
See the changelog file
Please take a look at #144 for a detailed list of updates on our roadmap.
Support for ES6 modules are currently on our roadmap, but are not yet implemented. In the interim, we are happy to recommend using the ES6 Module Transpiler via grunt-es6-module-transpiler to get transpilation support for modules in your Ember.js apps.
This will turn your ES6 module syntax into AMD (RequireJS-style) modules and using the transpiler you can write code using tomorrow's syntax today. Note: actually scaffolding ES6 modules will not be supported until this generator adds that feature.
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.
- in generator-ember dir,
npm linkto use what's in the local repo for
- 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.)