Ember CLI
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
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:
- Discord: Get your invite
- Issues: ember-cli/issues
Node
Currently, Ember CLI supports Node (latest LTS recommended), npm (3.x and above) or yarn.
Why?
A good browser framework is important. But building ambitious web applications also requires excellent tooling and processes. Ember CLI wraps all of this (and much more) into a developer-friendly command-line package.
Among the principal features of Ember CLI are:
- Project/Addon creation: create new projects quickly without having to worry about project structure;
- Build pipeline: asset compilation, finger-printing and more out of the box;
- Generators: use the built-in generators and get files that follow the latest practices, and matching tests;
- Ember Addons: extend both your application and Ember CLI itself with community solutions.
By sharing the tooling infrastructure that Ember CLI and its addons provide, members of the Ember.js ecosystem can spend more time on the things that make their individual applications unique.

Formed in 2009, the Archive Team (not to be confused with the archive.org Archive-It Team) is a rogue archivist collective dedicated to saving copies of rapidly dying or deleted websites for the sake of history and digital heritage. The group is 100% composed of volunteers and interested parties, and has expanded into a large amount of related projects for saving online and digital history.
