Multi-asset AMD
by andrewdavey
JavaScript
var assets = []; // window level variable defined in first asset.
assets.push(function(app, $) {
var Foo = {};
this.Foo = Foo;
});
assets.push(function(app, $) {
var Foo = this.Foo;
var Bar = {};
this.exports.Bar = Bar;
this.Bar = Bar;
});
// appended to final asset:
define(["scripts/app", "scripts/jquery"], function() {
var module = { exports: {} };
for (var i = 0, length = assets.length; i < length; i++) {
assets[i].apply(module, arguments);
}
return module.exports;
});
// TODO: Need a way to alias bundle paths to variable names
// e.g. /// <reference path="script/jquery" as="$" />