module-bundler

ModuleBundler combines javascript files and provides a minimal CommonJS-like loader to access them

npm install module-bundler
7 downloads in the last week
16 downloads in the last month

Build Status

                 __     __        __                ____       
  __ _  ___  ___/ /_ __/ /__ ____/ /  __ _____  ___/ / /__ ____
 /  ' \/ _ \/ _  / // / / -_)___/ _ \/ // / _ \/ _  / / -_) __/
/_/_/_/\___/\_,_/\_,_/_/\__/   /_.__/\_,_/_//_/\_,_/_/\__/_/

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

npm loves you