基于先前的插头机制的原理,可以汲取它是插头 - 企业 - 级前端框架。它配备了一个综合的插头系统,该系统也使UMI具有良好的可扩展性。所有功能都是由插件完成的,并且还以插件的形式完成了施工功能。将从以下内容中学到构建原理两个方面。
如果您想了解命令的注册过程,请让我们从生成的项目开始。
从初始化的项目文件的角度来看,执行命令,实际执行是,最终执行是。
根据此处的命令,我们在内部找到了UMI文件夹,并在UMI文件夹下查看文件:
可以看出,这是定义命令的地方,并且执行命令的脚本在其中。LET可以看到我们的工作。
确定当前是否执行它是本地脚手架。如果是这样,则将引入本地脚手架文件,否则将引入。在这里,我们没有打开本地脚手架说明,因此被引用了。
处理完成后,将立即执行自我执行的代码:
该文件是专门研究开发环境过程的脚本。
在上面的源代码中,继承是self -packaging.its核心代码在文件中,让我们看看它所做的过程:
在第二个包装中,我们看到它在初始化中注入了一个插头-in集和一个插头-in。我只是在WebPack中修改了别名。源代码非常简单。如果您有兴趣,可以去检查它。我不会在此处详细介绍。让插件套装:
可以在引入许多插头的目录的入口文件中看到它。这些插头是构建的 - 核心插头。在这里,我们只注意命令行的插头注射。
如前所述,在构造函数中,称为构造函数初始化了插头-IN集和插头-in。
至于如何实现初始化注册的插件和插头,请参阅该公共帐户上一篇文章的UMI3源分析系列的插件架构的核心。
在插件和插件初始化之后,实例化过程已完成。记住上面的核心脚本?回头看源代码:
该过程的开始需要两个步骤:1。实例,2。通话方法。
上面已经完成的实例,让我们看一下该方法的调用。
此时,我们已经完成了所有构建 - 命令行的插头 - 注册。
插件注册完成后,立即调用该方法执行命令的脚本函数。
在该方法中,从集合中获取当前命令名称,这是格式的统一性。获得的是类型的对象,从其获得属性,然后直接调用以完成命令行脚本的执行。
让我们看一下每个命令的核心实现逻辑。
如上所述,构建的 - 核心插头 - 通过插头-in集注入。我们找到插件集中开发的命令文件,也就是说
注册命令通过核心方法完成。让我们看看文件完成了什么:
首先查看该方法,包括3个部分::
从UMI命令注册该部分,我们了解到,最终,当执行该方法时,实际执行每个命令插件的方法。然后,让我们看一下如何实现命令。
此时,该命令的核心运行时脚本已解释。
以上,通过解释命令注册原则的源代码和命令注册过程,我们已经学会了如何实施命令注册。实际上,它是通过插件的形式实现的,并再次确认所有插头的设计思想。
原始:https://juejin.cn/post/7101557365907931172
