它是插头 - 企业 - 级前端 - 端应用程序框架。它被广泛用于开发的背景项目,并带来了很多方便。在这个机会的情况下,我们共享下一个“ UMI3源代码分析”系列。最初的意图非常简单,可以帮助每个人在源代码级别上了解框架。本系列的概述如下:
Open Hongmeng,今天要分析的是第一部分,包括以下两个部分:
源代码版本放置在此处,下一个代码被密切注释到源代码中的位置。
源代码中此部分的路径是:
第一个是命令的第一部分。脚手架为我们提供了这个命令。当我们创建一个项目并安装相关依赖项时,执行命令为
因此,在命令命令期间发生了什么,让我们看一下完整的过程,如下所示:
接下来,我们分析了它的几个关键步骤,首先是我们在命令行中输入的命令。
解析命令行参数基于包装。该方法的两个方法是和谐。分析结果如下:
分析线参数后,专门处理和参数:
一般而言,如果仅输入使用UMI命令的使用指南,则输入将输出依赖版本,如果执行执行,则是下一步。
问题:您知道将发送什么输入吗?
运行Umi Dev
在本地开发过程中,大多数脚手架将使用新线程来启动项目以及脚手架。此处的方法基于中等方法的封装。以下三件事已经完成:
让我们看一下我在此过程中所做的事情。
initwebpack
此步骤是检查用户配置的版本以确定初始化版本。阅读默认配置文件和配置。如果有或平等的配置,将使用初始化,否则将初始化。在此版本中支持了与模块相关的配置。
源代码中此部分的路径是:
说到框架,首先要想到的是这也是框架的核心。该部分的核心来源是类。接下来,让我们看一下课程中发生的情况。
该流程图中的前四个步骤在分类过程中完成,然后让我们输入课程。
类继承用于实现自定义事件。在实例化过程中,以下三件事主要完成:
1.分析配置文件
对于源代码,您可以看到读取配置文件的优先级:>>,然后尝试获得相应的配置文件,并且配置将在模式中使用。
例如:>>
由于配置文件中的其他配置,因此在此处执行递归处理。分析所有配置文件后,将通过该方法清除缓存,这可以确保对下一个合并配置的介绍是真实的 - 时间。
2.获取相关的绝对路径
此步骤是要在项目目录结构中的文件夹中获取文件夹的绝对路径。如果用户在配置文件中配置,则页面文件夹的页面为默认文件。
3.收集以对象形式描述的预设和插件
中国的“一切事物”是对插头的描述。它可以理解为“插头-in集”,以促进插件的管理。例如:用于应用程序的插件 - 设置,包括权限管理,安特杜伊组件等。
收集和。该方法首先调用,并完成以下处理:
3.1,呼叫方法,进一步收集和合并
在这里,我们可以看到收集的主要主要来源和。
3.2,呼叫方法:输出收集或客观形式
如官方网站中所述:每个插件 - 将对应于一个和一个路径的快捷方式,这是用于进一步简化配置的唯一值。这是此步骤的处理
表格如下:
思考:为什么以对象的形式描述插头 - 有什么好处?
类实例完成后,该方法将立即调用。第一步是执行该方法。该方法的功能是完成插头的初始化。主要操作如下:
这里的和谐是收集的结果,并在上一步中获得。在此步骤中,我们必须是一个一个,然后看看我们的工作。
初始化插件
该代码主要执行以下操作:
执行该方法时,插件将添加到实例的实例中
用于进一步处理插头钩
这是上一步的关键值
转换是结果。例如,密钥是对应于每个插头的钩子的值,因此在后续中可以一次执行所有插件的钩子。
从过程和处理过程中不难看出,以对象形式的插头使插头的处理非常灵活。
在源代码分析的上述部分之后,每个人都必须发现它。无论是提供订单,支持多元化的配置(例如:插件的依赖性插件中的依赖项,是或?)还是插件 -在我们提供的配置模式下,为了节省用户的开发效率,他们确实做了很多事情。在同一timealso上(可以在插头的处理中看到)。概念的一个“约定大于配置”。将逐步设置施工项目参考插件。用户只需要专注于业务逻辑即可。这主要是一件美丽的事情。
好的,到目前为止,今天的源代码分析在这里。我想知道您的感觉吗?如果您仍然感到怀疑,您可以留言并讨论。如果您让您获得一些东西,欢迎您喜欢它并注意后续系列的更新!
原始:https://juejin.cn/post/7096740749621854215