Shaker is comprised of three components that work together in various ways depending on the environment. This chapter provides an nontechnical overview focusing on the three components and how they work together.
Shaker Core is the foundation of Shaker. It alone has the ability to parse shaker.json configuration files, compute and resolve rollup dimensions and dependencies, and ultimately generate rollup metadata.
The Shaker Compiler is the build-time component of Shaker. It uses Shaker Core to generate the metadata and to create the rollups for the application.
Shaker Compiler can be configured for each environment (staging, test, production) in application.json, and you can also decide what actions to apply to the rollups (minify, js/css lint, etc). Moreover, you can set what we call deployment tasks, which allow developers to deploy rollups to different places:
Shaker Compiler has nothing to do with any Cocktails product; it is just a name of a Shaker internal component.
The Shaker Mojito addon is the runtime component of Shaker. It reads the metadata generated by the Shaker Compiler, and subsequently, manages assets within the application, picking the correct rollup based on the current environment.
The ShakerHTMLFrame is a copy of the Mojito HTMLFrameMojit, but it additionally includes the addon and executes Shaker automatically.
This is how all the components work together: