Universal JS module loader

With dependency

1
2
3
4
5
6
7
8
9
10
11
12
13
;(function (root, factory) {

if (typeof define === 'function' && define.amd) {
define(['jquery'], factory);
} else if (typeof exports === 'object') {
module.exports = factory(require('jquery'));
} else {
root.YourModule = factory(root.jQuery);
}

}(this, function (jquery) {
return {};
}));

No dependencies

1
2
3
4
5
6
7
8
9
10
11
12
13
;(function (root, factory) {

if (typeof define === 'function' && define.amd) {
define(factory);
} else if (typeof exports === 'object') {
module.exports = factory();
} else {
root.YourModule = factory();
}

}(this, function () {
return {};
}));

Supports circular references

1
2
3
4
5
6
7
8
9
10
11
12
13
(function (root, factory) {

if (typeof define === 'function' && define.amd) {
define(['exports', 'jquery'], factory);
} else if (typeof exports === 'object') {
factory(exports, require('jquery'));
} else {
factory((root.YourModule = {}), root.jQuery);
}

}(this, function (exports, jQuery) {
exports.action = function () {};
}));

Reference