Skip to content

asterjs/aster-umd

Repository files navigation

aster-umd

NPM version Build Status

Wrap code to UMD with aster.

Usage

First, install aster-umd as a development dependency:

npm install --save-dev aster-umd

Then, add it to your build script:

var aster = require('aster');
var concat = require('aster-concat');
var umd = require('aster-umd');

aster.src('src/**/*.js')
.map(concat('superLib.js'))
.map(umd({
  deps: [
    {name: 'jquery', globalName: 'jQuery'},
    'jade',
    {name: 'lodash', globalName: '_', amdName: '../lodash'}
  ]
  //, exports: 'superLib' - no need to set explicitly in this case
}))
.map(aster.dest('dist'))
.subscribe(aster.runner);

API

umd(options)

options.exports

Type: String Default: generated from filename (i.e. superLib/smth.js => superLib.smth).

Global name (may be namespaced) for exported object.

options.fromGlobal

Type: Boolean Default: false

When set to true, identifier from options.exports is assumed to be already set in code and will be used as exports.

When set to false (default), value from top-level return statement will be used instead.

options.deps

Type: Array(String | Object) Default: []

External dependencies array. Each item may be either string or extended object in following form:

{
  name: '' // default name for any properties that aren't set
  globalName: '', // global name for dependency
  paramName: '', // parameter name for the wrapper function (defaults to `globalName`)
  amdName: '', // module name for the AMD dependency
  cjsName: '' // module name for the CJS dependency
}

For example, from:

[
    {name: 'jquery', globalName: 'jQuery', paramName: '$' /* , cjsName: ..., amdName: ... */},
    'jade',
    {name: 'lodash', globalName: '_', amdName: '../lodash'}
]

...you would get:

(function(root, factory) {
    if (typeof define === 'function' && define.amd) {
        define(['jquery', 'jade', '../lodash'], factory);
    } else if (typeof exports === 'object') {
        module.exports = factory(require('jquery'), require('jade'), require('lodash'));
    } else {
        root.test = factory(root.jQuery, root.jade, root._);
    }
}(this, function($, jade, _) {
    // ...
}));

License

MIT License

Releases

No releases published

Packages

No packages published