What is a shim?
It is used to integrate “old” libraries, that use a global variable, to load it in requirejs/browserify environments.
You have your own or old library or plugin that is registering itself as
var MY_UTIL = function(){};
MY_UTIL.prototype.doSth = function(sth) {};
Now you want to require/define this in AMD/CommonJS env:
will fail.
require("MY_UTIL")
That’s why you create a shim of this kind:
Whenever I require “myutil”, please provide me with the stuff that’s inside the MY_UTIL variable of the file src/js/external/myUtil.js
(yes, different cAseS are on purpose here to explain the difference of what refers to what)
paths: {
"myutil": "src/js/external/myUtil.js"
},
shim: {
"myutil": {
exports: "MY_UTIL"
}
}
Again, this will give you the window.MY_UTIL variable of the file src/js/external/myUtil.js, but now you can referto it as "myutil"