module-bundler
Version:
ModuleBundler combines javascript files and provides a minimal CommonJS-like loader to access them
91 lines (63 loc) • 2.8 kB
Markdown
[](http://travis-ci.org/kmalakoff/module-bundler)
````
__ __ __ ____
__ _ ___ ___/ /_ __/ /__ ____/ / __ _____ ___/ / /__ ____
/ ' \/ _ \/ _ / // / / -_)___/ _ \/ // / _ \/ _ / / -_) __/
/_/_/_/\___/\_,_/\_,_/_/\__/ /_.__/\_,_/_//_/\_,_/_/\__/_/
````
ModuleBundler combines javascript files and provides a minimal AMD-like loader to access them.
A typically bundle file will have multiple bundles and output directories specified like (CoffeeScript config file):
```
module.exports =
'test/packaging/build/bundle-latest.js':
underscore: 'underscore'
'underscore-awesomer': 'underscore-awesomer.js'
'test/packaging/build/bundle-legacy.js':
underscore: 'vendor/underscore-1.2.1.js'
'underscore-awesomer': 'underscore-awesomer.js'
```
In this example, two bundles will be created:
1. test/packaging/build/bundle-latest.js - will include underscore from an npm install and underscore-awesomer.js from the current working directory.
2. test/packaging/build/bundle-legacy.js - will include underscore from the vendor directory and underscore-awesomer.js from the current working directory.
Also, there are some additional bundling options:
1. **_publish** - this calls require(module_name) and assigns the result to a symbol on window (browser) or globals (server). This is useful when using a bundle on the client where libraries expect dependent symbols to be defined on window.
2. **_alias** - this calls require(module_name) and re-defines it under a new, aliased module name. This is useful is you want to replace a loaded module in a library. For example, you can replace underscore with Lo-Dash in Backbone.js.
3. **_load** - this calls require(module_name) to ensure the module is loaded when the bundle is loaded.
Examples (CoffeeScript config file):
```
module.exports =
'vendor/scripts/client-bundle.js':
lodash: 'lodash'
backbone: 'backbone'
'backbone-articulation': 'backbone-articulation'
_alias:
underscore: 'lodash'
_publish:
_: 'underscore'
Backbone: 'backbone'
_load:
'backbone-articulation'
```
Of course, this example could be simplified as:
```
module.exports =
'vendor/scripts/client-bundle.js':
underscore: 'lodash'
backbone: 'backbone'
'backbone-articulation': 'backbone-articulation'
_publish:
_: 'underscore'
Backbone: 'backbone'
_load:
'backbone-articulation'
```
# Release Notes
###0.1.1
- initial release
Building the library
-----------------------
###Installing:
1. install node.js: http://nodejs.org
2. install node packages: 'npm install'
###Commands:
Look at: https://github.com/kmalakoff/easy-bake