Ember CLI includes the fast asset pipeline broccoli (can be found at https://github. com/broccolijs/broccoli). Broccoli draws heavy inspiration from the Rails asset pipeline. It runs on node.js and is independent of the backend platform you are working with.
One of the most common ways to handle asset compilation and minifying is to use the Grunt task runner, or a similar tool. Let’s say you are working on an application that involves the compilation of CoffeeScript, Sass, and other similar assets. Now to make these assets available to our application, you will have to write a Grunt task that does the compilation.
When you start the active development of your application, you will realize that running the Grunt task after making any changes to your CoffeeScript or Sass files iscumbersomeandtime-consuming.So,youstartusinggrunt watchinyour application to rebuild your entire application whenever you make any changes anywhere in your application. But very soon, when your application grows in size andcomplexity,youwillrealizethatgrunt watchistakingtoomuchtimeasyouare rebuilding your entire application, even if only one of the Sass files has been changed.
Broccoli, on the other hand, figures out which files have changed and only rebuilds those that were modified. This means that rebuilding is now a constant time with the number of files in your application, as you generally only rebuild one file.
This is just one example of what broccoli is capable of. It has many more useful optimizations to make your development and build process simple and fast.
Some of the assets that are supported by Broccoli include:
• Minified JS and CSS
Every Ember CLI project will contain a file called Brocfile.js present at the root
of the project. This is the definition file and contains build-specific instructions for