javascript绑定器的工作原理
当我试图理解javascript bundler如何工作时,我无法理解以下代码javascript绑定器的工作原理,javascript,bundler,Javascript,Bundler,当我试图理解javascript bundler如何工作时,我无法理解以下代码 // require function var require = function (module) { if (!dependencies[module]) { // module not loaded, let’s load it var exports = {} modules[module](exports) // now in `exports` we have the thin
// require function
var require = function (module) {
if (!dependencies[module]) {
// module not loaded, let’s load it
var exports = {}
modules[module](exports)
// now in `exports` we have the things made “public”
dependencies[module] = exports
}
return dependencies[module]
}
我已经搜索了stackoverflow,找不到这个特定问题的任何答案。有人能解释一下上面的代码吗?感谢首先请注意,
依赖项
对象充当缓存机制,以避免多次加载模块
现在让我们一步一步地进行:
var require = function (module) {
首先检查模块是否已加载,如果已加载,只需在下面返回即可
if (!dependencies[module]) {
由于现在还不需要该模块,因此我们需要对此进行修改。所以
在当前作用域中创建一个将添加模块内容的对象
var exports = {}
调用模块并将exports
对象传递给函数,以便在函数内部可以向该对象添加内容
modules[module](exports)
由于exports对象现在保存从该模块导出的所有内容,我们可以将其分配给依赖项[module]
,下次我们可以检查(如上所述)是否已经需要它
dependencies[module] = exports
返回刚刚添加的模块(或从以前的调用中添加的模块,因此需要)
具体来说,你不明白什么?例如,第一行是注释。你需要解释吗?
return dependencies[module]