egg核心挂载流程(图解)和扩展原理,设计原理

egg作为一个可以高度扩展的框架,使用起来非常方便。之前介绍了egg的启动流程,本文主要对egg框架的加载原理进行解析,从设计层面谈谈egg,并把egg的加载流程归结为一张图。

简易挂载流程分析:

从egg的启动流程已经找到了egg的入口文件:

1,核心:

egg的app_worker_loader中的load方法,而AppWorker又继承自egg-core包下的EggLoader,相当于执行EggLoader实例化之后的一些方法,之后执行egg-core中lib/loader/mixin下的文件

2,加载load_config

在egg包下Egg实例化时执行this.loader.loaderConfig(),最终也是指向EggCore实例,指向mixin文件夹下的plugin文件和config文件;

源码:app_worker:

源码:

详细流程图解:

总结:egg的主要加载思想是使用node通过目录读取到对应的文件,再对app进行扩展,源码设计的读取和扩展相对复杂,可能是框架多次迭代和优化后的结果。

参考:egg源码 egg-core源码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值