requireJS 源码(三) data-main 的加载实现
(一) 入口 通过 data-main 去加载 JS 模块,是通过 req(cfg) 入口去进行处理的。 为了跟踪,你可以在此 加断点 进行调试跟踪。 (二) req({ })执行时,function newContext() 已经创建了上下文环境 context。我们可以看看 context 拥有哪些属性与方法。 通过执行 context.confgiure(config)即可加载 data-main所对应的js文件(main.js)。 当req(cfg)执行,config值 如右图所示--------- 在context.confgiure()函数最后一行代码中,开始执行 context.require() . context.require(...),其中 context.require = context.makeRequire(); 其中,makeRequire() 以及 localRequire() 这里已经形成了闭包。 因为在 req( { } )调用makeRequire()时 ,已经直接返回 localRequire(),因此 context .require(..) , 直接进入 localRequire()函数。 localRequire()函数里,做很很多事,但是,由于此时 全局队列