Skip to content

[deprecated] Yeoman generator for Ember.js web applications

Notifications You must be signed in to change notification settings

deprecate/generator-ember

Repository files navigation

Ember.js Generator Build Status

Deprecated in favor of ember-cli. See #249.

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.

ScreenShot

Table of Contents

Pre-reqs

  • npm
  • compass
  • npm install -g grunt-contrib-compass
  • Ruby
  • gem install compass

You should have one path each for:

which ruby && which compass

Tutorials

You can either get started using the guide in our documentation lower down or via one of the community-authored tutorials about this generator.

Usage

  • 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 serve

A welcome page should appear in your browser.

Generators

Add'l generators:

  • ember:model
  • ember:view
  • ember:controller
  • ember:component

ember:model

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:

ember:view

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.

ember:controller

Creates a view, handlebar, controller and route given an arg, as in:

yo ember:controller Bar

(and updates router.js, overwrite when prompted)

see:

ember:component

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 {{x-player}}.

Options

  • --skip-install

    Skips the automatic execution of bower and npm after scaffolding has finished.

  • --test-framework=[framework]

    Defaults to mocha. Can be switched for another supported testing framework like jasmine.

  • --coffee

    Enable support for CoffeeScript.

  • --karma

    Enables support for karma test runner

Testing

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.

Troubleshooting

Command not found

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

templateName issues

Manifests as: You specified the templateName ... but it did not exist.

You probably added a view; restart the server.

Changelog

See the changelog file

Roadmap

Please take a look at #144 for a detailed list of updates on our roadmap.

Modules

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.

Contribute

Basics

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.

Tips

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 for yo 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.)

Background

License

BSD license