You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
NOTE: to use the old (original) API, use 0.10.x, the 0.12.x release breaks backwards compat, and requires additional changes before we'll be re-documenting.
Component build tool. This is the library that component(1) utilizes
to perform component builds.
Installation
$ npm install component-builder
API
new Builder(dir)
Creates a new Builder for the given component's dir:
The component's component.json contents as an object.
Builder#addSourceURLs()
Add "sourceURL" support, wrapping the module functions
in Function() calls so that browsers may assign a
name to the scripts to aid in debugging.
Builder#addLookup(path)
Append the given dependency lookup path. This lookup path is
"global", thus it influences all dependency lookups.
Builder#development()
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:
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.
builder.ignore('visionmedia-page')
Builder#build(fn)
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
Builder#use(fn)
Give the builder a plugin to use. The fn args are fn(builder [, done]). If The plugin has async logic it should invoke the done callback as needed. Sync plugins should ignore this argument.
Examples
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:
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():