Overview

Ember CLI is the official command line utility used to create, build, serve, and test Ember.js apps and addons.

It provides a consistent project structure, a powerful addon system, and a fast Broccoli-powered build pipeline. Whether you are looking for a zero-config experience or the ability to make your own customizations, Ember CLI has the tools you need.

There are thousands of JavaScript libraries that work great in Ember. When an npm package offers some Ember-specific conveniences, we call it an “addon.” Ember CLI’s addon system provides a way to create reusable units of code, share components and styling, extend the build tooling, and more — all with minimal configuration. To view a complete list of addons, visit EmberObserver. You can still use your favorite npm packages directly too. If they are not available as addons yet, you can add them into your build pipeline or create your own addon wrappers.

Ember CLI’s asset compilation system has out-of-the-box support for:

LESS

Sass

Compass

EmberScript

Handlebars

Minified JS & CSS

Get started.

Modules

Ember CLI uses babel, which turns ES2015 module syntax into AMD (RequireJS-esq) modules.

Using a custom resolver, Ember CLI can automatically import modules when needed. For example, the route in routes/post.js will know to use the controller in controllers/post.js and the template in templates/post.hbs . You are not limited to automatic resolution so if your application needs to explicitly include a module, it’s only an import away. Learn more about ES2015 modules here.

Testing using the CLI

All apps built with Ember CLI are preconfigured to use QUnit and Ember QUnit. While these are the default, you are free to use other options such as Mocha and Ember Mocha.

Dependency Management

Ember CLI supports both yarn and npm for managing dependencies.

Runtime Configuration

Ember CLI’s runtime is configurable via a file named .ember-cli . The JSON-formatted file, which must be placed in your home directory, can include any command-line options whose names must be in camel case form. For example:

# ~/.ember-cli { "skipGit" : true , "port" : 999, "host" : "0.1.0.1" , "liveReload" : true , "environment" : "mock-development" , "checkForUpdates" : false }

Content Security Policy

The ember-cli-content-security-policy addon can be used to to enable the Content Security Policy headers in modern browsers when running the development server.

When enabled, Content Security Policy headers help mitigate certain types of attacks including Cross Site Scripting (XSS) and data injection. Browser support is very good, and the ember-cli-content-security-policy addon makes it easy to build your app with CSP in mind. For example, enabling it on your production stack is a matter of adding headers.

Community

Ember CLI is continuously evolving. It’s an on-going community effort. We welcome your issues and PRs for features, bug fixes, and anything that would improve your quality of life as an Ember developer.

Talk to us here:

Node

Currently, Ember CLI supports Node (latest LTS recommended), npm (3.x and above) or yarn.