node package manager


Build assembler for the Ender CLI

Ender Builder Build Status

A component of the Ender CLI but can also be used as a stand-alone tool to assemble Ender builds.

Ender Builder is responsible for bundling up all required packages and their dependencies into a single ender.js file (and its associated ender.min.js file). It does not install packages, that is left up to the main Ender CLI. It expects to find the packages it needs in the node_modules directory.

Ender Builder isn't responsible for including the "client lib" (ender-js) in the list of packages to be bundled, that is left up to the main Ender CLI before deferring the build to Ender Builder.

Ender Builder uses ender-minify for build minification so it understands --minifier / options.minifier.


If you install with npm install ender-builder -g then you'll get an ender-builder executable that you can use to build ender.js files given a list of packages that already exist in the node_modules directory (remember to include ender-js if you need it).

$ ender-builder ender-js bonzo bean traversty --output winning.js

About Ender

For more information check out


enderBuilder(options, packages, dependencyGraph, callback)

Ender Builder exports a single main function. You must provide it with a standarrd Ender options object (which can be obtained from ender-args-parser), an array of packages (which is available on options.packages if you are parsing the command line), a DependencyGraph object (obtained from ender-dependency-graph) and a callback function to be notified when building is finished.

The callback signature is: function (err, filename) where filename is the name of the unminified file, usually ender.js.

enderBuilder.minify(options, source, callback)

minify() is a wrapper around ender-minify that basically takes an options object and turns it into a form that ender-minify can understand.


Contributions are more than welcome! Just fork and submit a GitHub pull request! If you have changes that need to be synchronized across the various Ender CLI repositories then please make that clear in your pull requests.


Ender Builder uses Buster for unit testing. You'll get it (and a bazillion unnecessary dependencies) when you npm install in your cloned local repository. Simply run npm test to run the test suite.


Ender Builder is Copyright (c) 2012 @rvagg, @ded, @fat and other contributors. It is licenced under the MIT licence. All rights not explicitly granted in the MIT license are reserved. See the included LICENSE file for more details.