Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Static asset rollup manager for Mojito applications.
JavaScript Python Makefile Other
Latest commit 144e04b @aljimenez aljimenez Merge pull request #54 from yahoo/yui-3.18
Upgrade yui version.
Failed to load latest commit information.
addons Making sure that inlineAppResources is an array.
artifacts bumped version
bin replace utils.error w/ console.error
docs Update shaker_starting.rst
lib Uploading yui modules to cdn even if no controller/binder/addon etc. …
mojits/ShakerHTMLFrameMojit Setting content-type header as an array, since the http addon sets va…
.gitignore Merged changes.
.npmignore Added test directory to npmingnore.
.travis.yml Update .travis.yml
LICENSE Added Travis build status in readme.
index.js Shaker V4 initial commit.
package.json Upgrade yui version.


Shake it!

Shaker is a powerful static asset manager for Mojito applications. It gives users absolute control in transforming, validating, uploading, organizing, and combining resources in order to maximize performance and build dynamic applications.

For more information, please see the online documentation.

Build Status


Shaker can be installed either locally or globally (using -g option), but we encourage you to install it locally, since the reference to the inner mojits will be relative to the app.

  1. Get the mojito-shaker npm package and install it:

    $ cd myMojitoApp
    $ npm install mojito-shaker [-g]
  2. If you installed it locally you will have to link it:

    $ cd ./node_modules/mojito-shaker/ && sudo npm link
  3. Confirm that Shaker has been installed correctly by running:

    $ mojito-shake
  4. If you got some error, check if you have correctly configured the Node environment. You can try to set the right $NODE_PATH to the modules using:

    $ export NODE_PATH=:$NODE_PATH:`npm root -g`

Quick Start

Within a Mojito application root folder:

Edit application.json to configure the mojitDirs and the HTMLFrame so that it looks like:

        "settings": [ "master" ],
        "mojitsDirs": ["mojits","node_modules/mojito-shaker/mojits"],
        "specs": {
            "htmlframe": {
                "type": "ShakerHTMLFrameMojit"

Note: If you installed mojito-shaker globally you will have to point to the absolute path instead.

Execute Shaker and Start the server:

$ mojito-shake [--context "{key1}:{value1}[,{key2}:{value2}]"] [--run]
$ mojito start [--context "{key1}:{value1}[,{key2}:{value2}]"]

Go to URL:



You can access the documentation here:

If you want to build and contribute to the documentation, you will have to install Sphinx and under /docs run:

$ make html

Licensing and Contributions

Shaker is licensed under a BSD license.

To contribute to the Shaker project, please review the Mojito Contributor License Agreement.

Dependencies (Third-party libraries)

gear, async, mkdirp, mime, and optionally knox to use the S3 task.


The following image is used in accordance with the Creative Commons 2.0 License:

Something went wrong with that request. Please try again.