Document the project structure and setup while excluding local dependencies and IDE settings. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
55 lines
1.3 KiB
JavaScript
55 lines
1.3 KiB
JavaScript
/*
|
||
* 模块有上千个
|
||
* 模块分布在不同的文件
|
||
* */
|
||
|
||
|
||
// 1. 如何在自执行webpack函数外部调用模块
|
||
// 2. 加载器初始化问题(浏览器环境检测问题)
|
||
// 3. 模块丢失问题
|
||
|
||
window = global
|
||
|
||
!(function (func_object) {
|
||
function inner_func(key) {
|
||
// 打印模块调用日志
|
||
console.log("被调用的模块是:", key);
|
||
func_object[key].call();
|
||
}
|
||
|
||
|
||
// 调用模块加载器
|
||
// inner_func("encrypt")
|
||
|
||
//将内部加载器挂在到全局
|
||
window.loader = inner_func;
|
||
|
||
// inner_func("web_env"); 如果在内部加载器中调用了环境检测直接注释
|
||
|
||
})({
|
||
"encrypt": function () {
|
||
console.log("加密...");
|
||
},
|
||
"decrypt": function () {
|
||
console.log("解密...");
|
||
},
|
||
"web_env": function () {
|
||
console.log("浏览器环境检测...");
|
||
},
|
||
})
|
||
|
||
|
||
// 问题1:将内部加载器挂载到顶级对象上
|
||
/*
|
||
window.loader("encrypt")
|
||
window.loader("decrypt")
|
||
*/
|
||
|
||
|
||
// 问题2:对于加载器初始化出现环境问题,直接注释
|
||
// inner_func("web_env")
|
||
|
||
|
||
// 问题3:模块丢失(在真实的网站模块调用当中可能存在模块是动态加载过来的)
|
||
// 解决方式就是模块定位(在内部加载器中打执行日志)
|
||
window.loader("339b") |