A fork of component-builder v0.10.0

Usage no npm install needed!

<script type="module">
  import componentBuilderX from '';



Build Status


This project is a fork of component-builder with a few fixes applied to it that Wizcorp found to be useful. Usage is exactly the same as component-builder.

What's Fixed?


$ npm install component-builder-x


new Builder(dir)

Creates a new Builder for the given component's dir:

var Builder = require('component-builder-x');
var builder = new Builder('components/visionmedia-page');


The component's component.json contents as an object.


Add "sourceURL" support, wrapping the module functions in Function() calls so that browsers may assign a name to the scripts to aid in debugging.


Append the given dependency lookup path. This lookup path is "global", thus it influences all dependency lookups.


Include development dependencies.

Builder#addFile(type, filename, val)

Add a fabricated file of the given type, filename, and contents val. For example if you were translating a Stylus file to .css, or a Jade template to .js you may do something like:

builder.addFile('scripts', 'view.js', 'compiled view js');

Builder#ignore(name, [type])

Ignore building name's type, where type is "scripts" or "styles". When no type is given both are ignored, this includes dependencies of name as well.



Perform the build and pass an object to fn(err, obj) containing the .css and .js properties.

Builder#hook(name, fn)

A build "hook" is like an event that lets you manipulate the build in process. For example you may use a hook to translate coffee script files to javascript automatically, or compile a template to javascript so that it may be loaded with require(), or use CSS pre-processors such as rework.

Available hooks are:

  • before scripts
  • before styles


Basic build

The follow demonstrates the most basic build you can possible do using this component builder implementation. A root component directory is passed to new Builder, followed by a .build() call which then responds with a res object containing the followign properties:

  • .require the require implementation script
  • .js compiled javascript
  • .css compiled css
var builder = new Builder('lib/boot');, res){
  if (err) throw err;
  console.log(res.require + res.js);

Lookup paths

In the previous example all the application's private components live in ./lib, thus if you want to specify dependencies without a leading "lib/" a lookup path should be created with .addLookup():

var builder = new Builder('lib/boot');