[发明专利]前端工程构建方法、装置、电子设备及可读存储介质有效
申请号: | 201710726518.7 | 申请日: | 2017-08-22 |
公开(公告)号: | CN107704234B | 公开(公告)日: | 2019-03-08 |
发明(设计)人: | 杜保兴;曾俊;刘燏;陈文魁 | 申请(专利权)人: | 北京三快在线科技有限公司 |
主分类号: | G06F8/20 | 分类号: | G06F8/20;G06F8/73 |
代理公司: | 北京润泽恒知识产权代理有限公司 11319 | 代理人: | 莎日娜 |
地址: | 100083 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 前端 工程 构建 方法 装置 电子设备 可读 存储 介质 | ||
本发明提供了一种前端工程构建方法、装置,涉及计算机技术领域。本发明实施例可以预先根据可运行实体对应的资源数据获取唯一性标识,然后根据该唯一性标识存储各可运行实体之间的第一依赖关系、可运行实体的资源数据。那么当接收到构建前端工程的任务后,根据所述前端工程各资源模块的资源数据,获取相应可运行实体的唯一性标识;根据该可运行实体的唯一性标识和该第一依赖关系,确定该前端工程需求的第二依赖关系;按所该第二依赖关系中的依赖顺序和每个依赖节点中的唯一性标识加载相应可运行实体的资源数据,获得相应可运行实体;根据该可运行实体完成前端工程的构建。降低了构建耗时,提高前端工程构建效率。
技术领域
本发明涉及计算机技术领域,具体涉及一种前端工程构建方法、装置、电子设备及可读存储介质。
背景技术
随着计算机技术的快速发展,前端的发展可谓是日新月异。相比较已经非常成熟的其他领域,前端虽是后起之秀,但其野蛮生长是其他领域不能比的。虽然前端技术飞快发展,但是前端整体的工程生态并没有同步跟进。如果说计算机科学要解决的是系统的某个具体问题,那么工程化要解决的是如何提高整个系统生产效率。因此越来越多的,为了提高前端效率,会对前端工程化。
Web(网络)前端工程化有两大特征:基于NPM(Node Package Manager)包管理器管理所有资源即模块。其中,NPM是一个Node.JS包管理和分发工具,已经成为了非官方的发布Node模块(包)的标准。资源模块并不完全能被浏览器直接执行,资源模块到实际可运行结果之间需进行构建,参照图1所示的现有前端工程构建中生成可运行实体的示意图,目前基于Webpack(模块打包器)构建过程主要包含以下步骤:
I.依赖分析:确定模块间依赖关系;
II.资源转换:将资源模块中不同类型或版本的开发语言、图片、字体、样式脚本等进行资源转换,获得可运行实体;其中,可运行实体为:按照统一方式进行模块化封装的浏览器可直接运行的代码片段。
III.构建结果生成:按照依赖关系组织可运行实体,生成最终构建结果。
构建结果构建完毕之后,浏览器访问相应网址时,可按序获取相应可运行实体以执行,从而显示实现页面显示、页面交互等功能。
具体的,对于如图1构建当前前端工程所需的资源模块一至资源模块五,也即图1中所示的资源模块一至资源模块五,经依赖分析和资源转换后可以得到的构建结果如图1中右侧虚框中所示,其中的箭头代表转换后的各可运行实体之间的依赖关系,资源模块一至资源模块分别对应可运行实体A-F,项目入口对应“运行入口”。其中,在每次依赖分析和资源转换最后生成可运行实体的过程一般平均需要20秒的时间。
但是,现有以Webpack(模块打包器)为例的前端工程构建的技术方案中,在资源转换环节生成的可运行实体使用其所处构建任务中自身被加载的顺序所处的序号来确定其在单个构建任务中的唯一性。由于构建任务中的可运行实体被加载顺序的不确定性,例如项目中的任意模块目录结构或资源引用关系的变动都会导致全部可运行实体被加载顺序的改变,因此现有构建方案无法确定其构建结果中可运行实体跨构建任务的唯一性,相应产生以下问题:可运行实体及其对应依赖关系只在当前构建任务有效,可运行实体无法进行有效存储进而重复利用。所以前端项目中任意模块的修改、移除、新增或者对拆分出去的子模块独立进行构建,相应可运行实体和第一依赖关系的获得只能依靠重新构建整个项目来获得比如前述前端工程的单次构建过程平均需要花费20秒,那么在先技术的每次重新构建过程会不断重复的花费如此长的时间。因此,对任意一个前端工程,每次重新构建过程涉及大量资源转换、代码分析和依赖提取等步骤,耗时较长,构建效率低。
发明内容
本发明提供一种前端工程构建方法、装置、电子设备及可读存储介质,以部分或全部解决现有技术中前端工程构建过程相关的上述问题。
依据本发明第一方面,提供了一种前端工程构建方法,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京三快在线科技有限公司,未经北京三快在线科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710726518.7/2.html,转载请声明来源钻瓜专利网。