Ember-CLI Basics

Ember-cli is truly a world class build tool, and it's more capable and versatile than most people think!

Ember-CLI Basics

Apps & Addons

The contents of your ember-cli-build file is on center stage when consuming ember-cli's asset pipeline features. We'll dive into some features exposed by way of the EmberApp and EmberAddon objects, using some familiar tasks as case studies.

  • Apps & AddonsImporting Assets

    One of the most common things a team needs to do in their ember-cli-build.js file is import a third party library into their app. We'll look at the the best way for getting this done, and provide some tips and tricks for consming as many things as possible via ES6 modules instead of globals.

  • Apps & AddonsEXERCISE: Globals to ES6

    Consuming as much as possible by way of ES6 modules is the way to go, for reasons we've already gone over. Let's take a library that makes its self available as a global, and use our knowledge of importing assets to expose it to our app or addon with ES6. This will include making things available as both named and default imports.

  • Apps & AddonsTrees aplenty

    Having worked with broccoli already, we are already familiar with the concept of a tree. Ember app builds have several trees, and provide a few places to customize them, as files are transformed, combined and prepared for production.

  • Apps & AddonsLunch

    Break for Lunch

  • Apps & AddonsEXERCISE: Tweaking trees in the right places

    We've covered the various trees in an ember-cli build, and means of customizing them. You'll be provided with some broccoli plugins, which you must insert into the build in the right places. Some of these will operate on the trees while JS and CSS remain in individual files, and some will need to operate on the concatenated and minified production assets.

  • Apps & AddonsAnatomy of EmberApp and EmberAddon

    ember-cli-build.js and index.js are the main focus of the ember-cli public API surface. We'll overview the various hooks, member data and other capabilities available to you when working with these files, and the important objects contained therein.


We'll focus most of our time on concepts and tacts that you'll actually use in your app.


Nearly 50% of our time will be spent writing code, and putting new knowledge into practice!


We'll dissect some things you already use and can relate to. No unrealistically-rosy toy examples!