node package manager

jQuery UI DownloadBuilder & ThemeRoller backend and frontend application.

jQuery UI DownloadBuilder & ThemeRoller backend and frontend application.


Getting Started

Install node modules.

$ npm install

Prepare the releases (declared in config.json) and build the frontend js bundles.

$ grunt prepare

Run the server.

$ node server.js --console

Go to the URL it outputs.



Use the config file to define which jQueryUI version DownloadBuilder should serve. Eg:

"jqueryUi": [
    "version": "1.10.0"
    "dependsOn": "jQuery 1.7+",
    "label": "Stable",
    "stable": true
    "version": "1.9.1"
    "dependsOn": "jQuery 1.6+",
    "label": "Legacy"

One version with the stable property set to true is required. Each release has the following attributes:

  • version is a String, can be a tag or a branch of jQuery UI. Note: use repo/branch eg. origin/master when defining a branch.
  • dependsOn is a String, any textual value allowed.
  • label is a boolean, describing the lifecycle of this version, like "Stable", "Legacy" or "Beta".
  • stable is a boolean, marking the current stable release. This will be selected by default in the web UI and will be used to generate demo files.

node server.js

Use node server.js to run the server. Arguments:

  • --console output to console instead of syslog (via simple-log module);
  • --host <name> specify custom host. Default localhost;
  • --nocache skip caching release files and theme images;
  • --port <number> specify custom port. Default 8088;


Use npm test to run the unit tests.

Local testing in WordPress

Here's how to do integration testing with WordPress:

Link your local module on

cd <local path>
$ npm link
$ node server.js --console
cd <local path>
$ npm link

Temporarily change its Gruntfile.js to use localhost instead of

                var frontend = require( "" ).frontend({
-                               host: ""
+                               host: "http://localhost:8088",
                                env: "production"

Then deploy:

$ grunt deploy


Compile and install ImageMagick from source


$ wget
$ tar -xzf ImageMagick-6.6.9-10.tar.gz
$ cd ImageMagick-6.6.9-10
$ ./configure CFLAGS=-O5 CXXFLAGS=-O5 --prefix=/opt --enable-static --with-png --disable-shared

Make sure you have the below in the output.

PNG               --with-png=yes yes

If "png=yes no", libpng is missing and needs to be installed, apt-get install libpng-dev on linux or brew install libpng on OS X.


$ make -j5 && sudo make install
export MAGICK_HOME="/opt"
export PATH="$MAGICK_HOME/bin:$PATH"

Make sure you get the right bin when running it.

$ which convert

Hint: add those export statements into your .bash_profile.