Wrap code to UMD with aster.
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);
Type: String
Default: generated from filename (i.e. superLib/smth.js
=> superLib.smth
).
Global name (may be namespaced) for exported object.
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.
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, _) {
// ...
}));