多项目组件化实现方法、装置、终端设备及存储介质与流程

文档序号:15095578发布日期:2018-08-04 14:29阅读:157来源:国知局

本发明涉及计算机技术领域,尤其涉及一种多项目组件化实现方法、装置、终端设备及存储介质。



背景技术:

在软件项目开发过程中,需依据项目需求开发不同功能的项目组件。由于不同软件项目中可能存在功能相同的项目组件(以下称为项目公共组件),如弹窗组件和地址选择组件等,为了避免重复开发,需在不同软件项目中调用项目公共组件,以提高软件项目的开发效率。当存在不同软件项目设有同一功能时,调用相同的项目公共组件的开发过程时,需由开发人员将软件项目A中的项目公共组件拷贝到软件项目B中,以在软件项目B中实现该项目公共组件的功能。该调用项目公共组件的过程需要通过人工进行项目公共组件的查找和拷贝完成,由于软件项目不断更新,对应的项目公共组件存储的版本越来越多,导致项目公共组件管理混乱,容易出现维护不及时的情况;同时影响项目公共组件的应用,使得开发人员在调用项目公共组件时出现查找效率低的问题。



技术实现要素:

本发明实施例提供一种多项目组件化实现方法、装置、终端设备及存储介质,以解决人工查找并调用项目公共组件过程效率低的问题。

第一方面,本发明实施例提供一种多项目组件化实现方法,包括:

获取至少两个项目组件配置请求,每一所述项目组件配置请求包括请求名称和请求版本号;

从npm统一管理平台中,获取与所述请求名称对应的npm资源包,所述npm资源包包括至少一个原始项目公共组件;

从至少一个所述原始项目公共组件中,获取与所述请求版本号相对应的目标项目公共组件;

对至少两个所述目标项目公共组件进行封装处理,获取多项目组件封装文件。

第二方面,本发明实施例提供一种多项目组件化实现装置,包括:

项目组件配置请求获取模块,用于获取至少两个项目组件配置请求,每一所述项目组件配置请求包括请求名称和请求版本号;

npm资源包获取模块,用于从npm统一管理平台中,获取与所述请求名称对应的npm资源包,所述npm资源包包括至少一个原始项目公共组件;

目标项目公共组件获取模块,用于从至少一个所述原始项目公共组件中,获取与所述请求版本号相对应的目标项目公共组件;

多项目组件封装文件获取模块,用于对至少两个所述目标项目公共组件进行封装处理,获取多项目组件封装文件。

第三方面,本发明实施例提供一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述多项目组件化实现方法的步骤。

第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现所述多项目组件化实现方法的步骤。

本发明实施例提供的多项目组件化实现方法、装置、终端设备及存储介质,通过获取至少两个项目组件配置请求中的请求名称获取npm统一管理平台中对应的npm资源包,再通过请求版本号从npm资源包中获取对应的目标项目公共组件,将获取到的至少两个目标项目公共组件进行封装处理,得到一个包含至少两个目标项目公共组件的多项目组件封装文件,方便通过调用多项目组件封装文件获取目标项目公共组件,从而提高获取目标项目公共组件的效率,使得项目组件的调用操作简单方便。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例1中多项目组件化实现方法的一流程图。

图2是本发明实施例1中多项目组件化实现方法的另一流程图。

图3是本发明实施例1中多项目组件化实现方法的另一流程图。

图4是图1中步骤S20的一具体示意图。

图5是图1中步骤S30的一具体示意图。

图6是图1中步骤S40的一具体示意图。

图7是本发明实施例2中多项目组件化实现装置的一原理框图。

图8是本发明实施例4中终端设备的一示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例1

图1示出本实施例中多项目组件化实现方法的流程图。该多项目组件化实现方法应用在开发人员需调用多个项目公共组件以完成软件项目开发的过程,可使得项目组件的调用操作简单方便,同时也方便开发人员对项目公共组件的管理和维护。如图1所示,该多项目组件化实现方法包括如下步骤:

S10:获取至少两个项目组件配置请求,每一项目组件配置请求包括请求名称和请求版本号。

项目组件配置请求是用于获取需要的项目组件的配置请求,该配置请求是由客户端发送给服务器的。该客户端可以是开发人员使用的电脑。该配置请求包括配置请求参数,配置请求参数包括请求名称和请求版本号。请求名称是指开发人员想要获取的项目公共组件的名称,请求版本号是指开发人员想要获取的项目公共组件的版本号。

具体地,服务器可以获取到客户端发送的至少两个项目组件配置请求,每一项目组件配置请求是使用该客户端的开发人员基于实际开发需求,确定所需要开发的功能后,通过客户端向服务器发送的请求,以获取所需的项目公共组件。为了区分项目组件配置请求的来源,还可使项目组件配置请求中携带用于识别不同开发人员的用户ID,以便将基于该项目组件配置请求获取到对应的目标项目公共组件反馈给该用户ID对应的客户端。

S20:从npm统一管理平台中,获取与请求名称对应的npm资源包,npm资源包包括至少一个原始项目公共组件。

npm统一管理平台是指存储npm资源包,并对npm资源包进行管理的工具。npm统一管理平台提供公共注册服务,可以存储开发人员发布的所有npm资源包,同时npm统一管理平台提供命令行工具,用来下载、安装、更新、搜索、发布和查看npm资源包。npm资源包是指将开发人员编写的javascript代码进行统一封装并存储的一种资源包。npm(node package manager,节点包管理器)是node.js的包管理器,node.js是javascript的一种运行环境。

当开发人员在node.js上进行软件项目开发时,会将至少一个原始项目公共组件封装在npm资源包中,并将npm资源包上传到npm统一管理平台,以方便开发人员对通过npm资源包实现对至少一个原始项目公共组件进行管理和后期维护。在将npm资源包上传到npm统一管理平台后,每一npm资源包对应一资源包名称,以便基于该资源包名称在npm统一管理平台上查找对应的npm资源包。由于npm资源包封装了至少一个原始项目公共组件,为了体现两者的联系,可使npm资源包的资源包名称对应于所封装的原始项目公共组件的项目组件名称,即资源包名称与原始项目公共组件的项目组件名称相同或相似。

服务器在获取到至少两个项目组件配置请求后,可以根据项目组件配置请求中的请求名称,从npm统一管理平台中获取与请求名称对应的npm资源包,以便获取预先上传到npm统一管理平台上的npm资源包。npm资源包封装有至少一个原始项目公共组件,封装的至少一个原始项目公共组件的项目组件名称相同或相似,但版本号不同。

S30:从至少一个原始项目公共组件中,获取与请求版本号相对应的目标项目公共组件。

目标项目公共组件是指npm资源包中与请求版本号一致的原始项目公共组件。由于npm资源包中包括的至少一个原始项目公共组件为名称相似或者相同但版本号不同的项目公共组件,因此,需要根据项目组件配置请求中的请求版本号获取与该请求版本号一致的原始项目公共组件作为目标项目公共组件,可以使获取的目标项目公共组件更加准确,或者说更符合开发人员的需求。

每一目标项目公共组件都是通过项目组件配置请求获取的,服务器获取到客户端发送的至少两个项目组件配置请求中的请求名称和请求版本号不相同,所以其获取到的至少两个目标项目公共组件也是不相同的。

开发人员需要使用某一项目公共组件时,可以通过项目组件配置请求,直接从npm统一管理平台中选择与请求名称对应的npm资源包,再从对应的npm资源包中选择与请求版本号对应的目标项目公共组件,以便进行安装使用该目标项目公共组件,使得获取目标项目公共组件的操作简单方便。

S40:对至少两个目标项目公共组件进行封装处理,获取多项目组件封装文件。

多项目组件封装文件是指将获取到的至少两个目标项目公共组件进行封装处理得到一个组件文件。多项目组件封装文件,可以将软件项目需要的所有目标项目公共组件封装在一个文件中,方便使用。

本实施例中,在获取至少两个的目标项目公共组件后,为了实现在同一软件项目中对至少两个目标项目公共组件的使用,需将至少两个目标项目公共组件进行封装处理。封装处理是指将获取到的至少两个目标项目公共组件封装成package.json文件的操作。该package.json文件是指开发人员在进行软件项目的代码开发时,存在于这个软件项目下的根目录的一个文件。该package.json文件包括该软件项目的配置信息,该配置信息是指该软件项目需要使用的所有目标项目公共组件的名称、版本号等数据信息。该package.json文件则为获取的多项目组件封装文件,给该多项目组件封装文件配置一个对应的接口,当需要调用该接口时,使用export方式进行调用,方便开发人员调用需要的至少一个目标项目公共组件。

本实施例中,通过对至少一个目标项目公共组件进行封装处理,无需先下载需要的目标项目公共组件对应的源码,对该目标项目公共组件对应的源码解压使用的过程,可接收利用封装处理后的多项目组件封装文件。

进一步地,步骤S40中,对至少两个目标项目公共组件进行封装处理具体包括:判断至少两个目标项目公共组件是否存在关联项目公共组件,若存在关联项目公共组件,则从npm统一管理平台中,获取对应的关联项目公共组件,并至少两个目标项目公共组件和关联项目公共组件进行封装处理。

其中,关联项目公共组件是指实现某一目标项目公共组件的功能时必须采用到的其他项目公共组件。如开发人员进行软件项目开发时,需要获取原始项目公共组件A和原始项目公共组件B的1.0版,而原始项目公共组件A本身又依赖原始项目公共组件B的2.0版,此时,原始项目公共组件B的2.0版是关联项目公共组件,因此,需一并获取原始项目公共组件B的2.0版,在封装处理进,需将原始项目公共组件A的1.0版和原始项目公共组件B的1.0版和2.0版封装成多项目组件封装文件。

本实施例所提供的多项目组件化实现方法,通过至少两个项目组件配置请求中的请求名称获取npm统一管理平台中对应的npm资源包,再通过请求版本号从对应的npm资源包中获取对应的目标项目公共组件。然后将获取到的至少两个目标项目公共组件进行封装处理,得到一个包含至少两个目标项目公共组件的多项目组件封装文件。该多项目组件封装文件配置有对应的接口,开发人员需要调用该接口时,可使用export方式进行调用,使用export方式调用多项目组件封装文件对应的接口,可以提高调用多项目组件封装文件的效率。

在一具体实施方式中,如图2所示,在步骤S20,从npm统一管理平台中获取与请求名称对应的npm资源包的步骤之前,多项目组件化实现方法包括:

S201:获取原始项目组件,原始项目组件包括项目组件名称、组件版本号和组件属性标签。

原始项目组件是指可实现某一功能的项目组件,该项目组件具体可以为实现某一功能的代码。具体地,服务器获取开发人员通过客户端发送的原始项目组件,该原始项目组件包括项目组件名称、组件版本号和组件属性标签。项目组件名称是指该原始项目组件对应的名称。组件版本号是指原始项目组件对应的版本号,该版本号是由包括但不限于阿拉伯数字、字符和汉字中的一种或者多种组成的版本号。组件属性标签是指原始项目组件对应的属性标签,属性标签是指标识项目组件属性的标签。该属性标签包括共有属性标签和私有属性标签,共有属性标签是指该原始项目组件适用于多个软件项目的属性标签,私有属性标签是指该原始项目组件只适用于一个软件项目的属性标签。

S202:基于组件属性标签为共有属性标签的原始项目组件,获取原始项目公共组件,原始项目公共组件与项目组件名称和组件版本号关联。

客户端发送的每个原始项目组件都携带有对应的组件属性标签,服务器基于组件属性标签,从原始项目组件中获取含有共有属性标签的原始项目组件作为原始项目公共组件。

将含有共有属性标签的原始项目公共组件从所有原始项目组件抽离出来,该原始项目公共组件抽取出来之后,会携带有原始项目组件中对应的项目组件名称和组件版本号。原始项目公共组件与项目组件名称和组件版本号关联有助于辨别获取到的原始项目公共组件,方便通过原始项目公共组件对应的项目组件名称和组件版本号了解原始项目公共组件的内容。

S203:将项目组件名称相同或相似的原始项目公共组件封装成一个cmd模式的npm资源包。

服务器在获取到多个携带共有属性标签的原始项目公共组件后,为了便于后续管理和使用,可以将所有原始项目公共组件按项目组件名称进行划分,具体将项目组件名称相同或相似的至少一个原始项目公共组件封装成一个npm资源包,该npm资源包对应一资源包名称,该资源包名称是指含有项目组件名称相同或相似的原始项目公共组件的名称,即若npm资源包中仅封装有一个原始项目公共组件时,该资源包名称与原始项目公共组件相对应;若npm资源包中封装有至少两个原始项目公共组件时,该资源包名称与至少两个原始项目公共组件中的其中一个项目组件名称相对应。

进一步地,该封装形式采用cmd模式进行封装。cmd模式进行封装形成npm资源包后,只需要打开cmd窗口,输入获取指令,就可以找到需要的npm资源包,从而找到需要的原始项目公共组件,为后续开发人员获取需要使用的原始项目公共组件提供了便捷的获取路径。

S204:将npm资源包存储在npm统一管理平台。

将获取到的所有npm资源包存储在npm统一管理平台中,便于对所有的npm资源包进行统一管理,可以做到及时维护和更新。具体地,存储在npm统一管理平台中,每一npm资源包的存储地址与其资源包名称,可以通过查询资源包名称获取到其存储地址,从而获取相应的npm资源包,以便于调用npm统一管理平台中的npm资源包。

进一步地,在原始项目公共组件出现新版本时,可以将该新版本的原始项目公共组件封装到和该新版本的原始项目公共组件的组件名称相同或相似的的npm资源包,以更新npm统一管理平台上的npm资源包,从而实现对npm资源包的更新管理。具体地,如图3所示,,将npm资源包存储在npm统一管理平台的步骤(即步骤S204)之前,该多项目组件化实现方法包括:

S2041:获取携带共有属性标签的更新项目组件,更新项目组件包括更新项目组件名称和更新项目组件版本号。

更新项目组件是指在软件项目开发的过程中,对某一原始项目组件中的代码进行更新后形成的项目组件。具体地,在软件项目开发过程中,基于业务需求会对软件项目的代码进行不断地更新,该软件项目的代码中含有的项目组件也会得到相应地更新,将更新的项目组件命名为更新项目组件。

更新项目组件名称为更新项目组件对应的项目组件名称,为了方便辨识和管理更新项目组件,可以将更新项目组件名称和原始项目组件名称设置为相同的名称。更新项目组件版本号是指更新项目组件对应的版本号,为了便于查找更新项目组件版本号对应的更新项目组件,本实施例中,将更新项目组件版本号用阿拉伯数字和字符命名,如(1.0)、(2.0)···(n.0),可以理解地,更新项目组件版本号依次递增。

S2042:基于更新项目组件名称,确定npm统一管理平台中是否存在同源的npm资源包。

同源的npm资源包是指与更新项目组件名称相同的npm资源包。若更新项目组件名称与资源包名称相同,则可以确认npm统一管理平台中存在同源npm资源包;若没有与更新项目组件名称相同的npm资源包,则npm统一管理平台中不存在同源的npm资源包。确定npm统一管理平台中存在同源的npm资源包,有助于步骤S2043将属于同一项目组件名称的项目组件封装在同一npm资源包中。

S2043:若存在同源的npm资源包,则将更新项目组件封装到同源的npm资源包中。

若存在同源的npm资源包时,需要对比更新项目组件版本号与npm资源包中对应的原始项目公共组件的版本号是否一致。若更新项目组件版本号与npm资源包中对应的原始项目公共组件的版本号一致,则需要修改更新项目组件版本号,获取修改后的更新项目组件版本号,在将更新项目组件封装成cmd模式的同源的npm资源包中,并保留该修改后的更新项目组件版本号。若更新项目组件版本号与npm资源包中对应的原始项目公共组件的版本号不一致,则直接将对应的更新项目组件封装成cmd模式的同源的npm资源包中。

可以理解地,将更新项目组件封装到同源的npm资源包后,该更新项目组件即为npm资源包中的一个原始项目公共组件,也便于后期对代码进行维护,同时方便开发人员在后续软件项目的代码开发时,可以了解同一项目组件名称对应的所有原始项目公共组件的情况。

在一具体实施方式中,如图4所示,步骤S20,从npm统一管理平台中获取与请求名称对应的npm资源包,具体包括如下步骤:

S21:从npm统一管理平台中获取与请求名称对应的名称列表,名称列表包括至少一个相似名称。

名称列表是指含有名称关键字映射关系的组件名称列表。该名称关键字映射关系是指请求名称与资源包名称中有相同的名称或者部分相同的名称的关系。该名称列表有助于查找与请求名称对应的npm资源包。npm统一管理平台中预先存储有一个名称列表,名称列表中包括至少一个相似名称。可以在不完整输入原始项目公共组件的项目组件名称的情况下,通过查询获取与输入的项目组件名称对应的名称列表,从而找到需要的npm资源包,方便开发人员快速获取需要的npm资源包。

S22:获取选择指令,选择指令包括目标名称。

选择指令是指用户选择相似列表的相似名称的指令。目标名称是指用户从至少一个相似名称中选择的需要获取的npm资源包的名称。开发人员在输入目标名称后点击确定按钮即可输入相应的选择指令,服务器基于选择指令中的目标名称从npm统一管理平台获取对应的npm资源包。

S23:基于目标名称从npm统一管理平台中获取对应的npm资源包。

具体地,当获取的目标名称与npm统一管理平台中存储的资源包名称一致时,则直接获取对应的npm资源包。当获取的目标名称与npm统一管理平台中存储的资源包名称不一致时,则调用预先存储在npm统一管理平台中的名称列表获取对应的npm资源包。

进一步地,调用预先存储在npm统一管理平台中的名称列表获取与目标名称相对应的npm资源包是通过关键字匹配算法实现的。其中,关键词匹配算法包括但不限于克努特-莫里斯-普拉特(Knuth-Morris-Pratt,以下简称KMP)算法。具体地,KMP算法是一种改进的字符串匹配算法,KMP算法的关键是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的。本实施例中,选用KMP算法对输入的目标名称和名称列表中存储的相似名称进行关键词匹配,获取对应的资源包名称,方便开发人员快速找到对应的npm资源包。

如开发人员输入的目标名称为“公共弹窗”或者“弹窗组件”都可以通过名称列表中的名称关键字映射关系查找到资源包名称为“公共弹窗组件”的npm资源包,从而实现在没有精确输入资源包名称的情况下获得对应的npm资源包。

在一具体实施方式中,如图5所示,步骤S30,从至少一个原始项目公共组件中,获取与请求版本号相对应的目标项目公共组件,具体包括如下步骤:

S31:若至少一个原始项目公共组件中存在与请求版本号一致的组件版本号,则将请求版本号对应的原始项目公共组件作为目标项目公共组件。

npm统一管理平台基于客户端发送的请求名称获取对应的npm资源包,由于一个npm资源包中包括至少一个的原始项目公共组件,每一原始项目公共组件对应一组件版本号,因此,服务器在从npm统一管理平台获取与请求名称相对应的npm资源包后,再从该npm资源包中获取与该请求版本号一致的原始项目公共组件作为目标项目公共组件。

S32:若至少一个原始项目公共组件中不存在与请求版本号一致的组件版本号,则将最新上传的原始项目公共组件作为目标项目公共组件。

若基于请求名称获取的npm资源包不存在与请求版本号一致的原始项目公共组件,则基于原始项目公共组件对应的上传时间,将最新上传的原始项目公共组件作为目标项目公共组件。也可以基于原始项目公共组件对应的组件版本号,将最新的组件版本号对应的原始项目公共组件作为目标项目公共组件。如一npm资源包中的原始项目公共组件的组件版本号分别为(1.0)、(2.0)、(3.0)和(4.0),则(4.0)为最新的组件版本号,则将组件版本号为(4.0)对应的原始项目公共组件作为目标项目公共组件。其原始在于,最新上传的原始项目公共组件为基于软件项目的实际需要作出的最新的调整,比较符合最新的软件项目的要求。

在一具体实施方式中,如图6所示,步骤S40,对至少两个目标项目公共组件进行封装处理,获取多项目组件封装文件,具体包括如下步骤:

S41:从至少两个目标项目公共组件中分别拉取对应的组件核心代码。

组件核心代码是指一个目标项目公共组件的代码中比较核心的代码,该组件核心代码可以实现该目标项目公共组件的功能。

可以理解地,当一个软件项目需要获取至少两个目标项目公共组件时,每个目标项目公共组件包括但不限于组件核心代码、组件模板代码和定义组件样式代码。通过步骤S41从每一目标项目公共组件中分别拉取对应的组件核心代码,可以减少拉取出来的代码的长度。

S42:采用gulp打包工具将至少两个组件核心代码进行整合处理,封装成components.js形式的多项目组件封装文件。

采用gulp打包工具将获取到至少两个组件核心代码进行压缩、编译、合并、检查和刷新等操作。其中gulp是前端开发过程中对代码进行构建的工具,gulp打包工具在开发过程中对很多重复的任务,如压缩、编译、合并、检查和刷新等,能够使用正确的工具自动完成。如编译可以采用“gulp-less”工具自动完成,合并可以采用“gulp-concat”工具自动完成。使用gulp打包工具可以有效提高组件核心代码整合处理的工作效率。

对获取到的至少两个组件核心代码进行整合处理后,需对该至少两个组将核心代码做进一步处理,即将该至少两个组件核心代码封装成一个多项目组件封装文件,该多项目组件封装文件是以components.js形式存在的。将获取的至少两个组件核心代码封装成components.js形式的多项目组件封装文件,可以将软件项目需要的所有目标项目公共组件封装在一个文件中,方便开发人员在调用需要的至少两个项目公共组件时不用分别进行调用,只需要调用一个对应的多项目组件封装文件就可以获取需要的至少两个项目公共组件。

该多项目组件化实现方法通过获取到的至少两个项目组件配置请求中的请求名称获取npm统一管理平台中对应的npm资源包,再通过请求版本号从npm资源包中获取对应的目标项目公共组件,然后将获取到的至少两个目标项目公共组件进行封装处理,得到多项目组件封装文件。该多项目组件封装文件使得开发人员在调用需要的目标项目公共组件时简单方便,效率高。若出现更新项目组件时,npm统一管理平台会基于更新项目组件对应的同源npm资源包,若存在同源npm资源包,则将更新项目组件封装到对应的同源的npm资源包中,以方便对项目公共组件的管理。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

实施例2

图7示出与实施例1中多项目组件化实现方法一一对应的多项目组件化实现装置的原理框图。如图7所示,该多项目组件化实现装置包括项目组件配置请求获取模块10、npm资源包获取模块20、目标项目公共组件获取模块30和多项目组件封装文件获取模块40。其中,项目组件配置请求获取模块10、npm资源包获取模块20、目标项目公共组件获取模块30和多项目组件封装文件获取模块40的实现功能与实施例中多项目组件化实现方法对应的步骤一一对应,为避免赘述,本实施例不一一详述。

项目组件配置请求获取模块10,用于获取至少两个项目组件配置请求,每一项目组件配置请求包括请求名称和请求版本号。

npm资源包获取模块20,用于从npm统一管理平台中,获取与请求名称对应的npm资源包,npm资源包包括至少一个原始项目公共组件。

目标项目公共组件获取模块30,用于从至少一个原始项目公共组件中,获取与请求版本号相对应的目标项目公共组件。

多项目组件封装文件获取模块40,用于对至少两个目标项目公共组件进行封装处理,获取多项目组件封装文件。

优选地,在npm资源包获取模块20之前,多项目组件化实现装置包括原始项目组件获取单元201、原始项目公共组件获取单元202、npm资源包生成单元203和npm资源包存储单元204。

原始项目组件获取单元201,用于获取原始项目组件,原始项目组件包括项目组件名称、组件版本号和组件属性标签。

原始项目公共组件获取单元202,用于基于组件属性标签为共有属性标签的原始项目组件,获取原始项目公共组件,原始项目公共组件与项目组件名称和组件版本号关联。

npm资源包生成单元203,用于将项目组件名称相同或相似的原始项目公共组件封装成一个cmd模式的npm资源包。

npm资源包存储单元204,用于将npm资源包存储在npm统一管理平台。

优选地,在npm资源包存储单元204之前,多项目组件化实现装置包括更新项目组件获取单元2041、同源的npm资源包判断单元2042和同源的npm资源包存储单元2043。

更新项目组件获取单元2041,用于获取携带共有属性标签的更新项目组件,更新项目组件包括更新项目组件名称和更新项目组件版本号。

同源的npm资源包判断单元2042,用于基于更新项目组件名称,确定npm统一管理平台中是否存在同源的npm资源包。

同源的npm资源包存储单元2043,用于若存在同源的npm资源包,则将更新项目组件封装到同源的npm资源包中。

优选地,npm资源包获取模块20包括名称列表获取单元21、选择指令获取单元22和npm资源包获取单元23。

名称列表获取单元21,用于从npm统一管理平台中获取与请求名称对应的名称列表,名称列表包括至少一个相似名称。

选择指令获取单元22,用于获取选择指令,选择指令包括目标名称。

npm资源包获取单元23,用于基于目标名称从npm统一管理平台中获取对应的npm资源包。

优选地,目标项目公共组件获取模块30包括第一目标项目公共组件获取单元31和第二目标项目公共组件获取单元32。

第一目标项目公共组件获取单元31,用于若至少一个原始项目公共组件中存在与请求版本号一致的组件版本号,则将请求版本号对应的原始项目公共组件作为目标项目公共组件。

第二目标项目公共组件获取单元32,用于若至少一个原始项目公共组件中不存在与请求版本号一致的组件版本号,则将最新上传的原始项目公共组件作为目标项目公共组件。

优选地,多项目组件封装文件获取模块40包括组件核心代码拉取单元41和多项目组件封装文件获取单元42。

组件核心代码拉取单元41,用于从至少两个目标项目公共组件中分别拉取对应的组件核心代码。

多项目组件封装文件获取单元42,用于采用gulp打包工具将至少两个组件核心代码进行整合处理,封装成components.js形式的多项目组件封装文件。

实施例3

本实施例提供一计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现实施例1中多项目组件化实现方法,为避免重复,这里不再赘述。或者,该计算机程序被处理器执行时实现实施例2中多项目组件化实现装置中各模块/单元的功能,为避免重复,这里不再赘述。

实施例4

图8是本发明一实施例提供的终端设备的示意图。如图8所示,该实施例的终端设备80包括:处理器81、存储器82以及存储在存储器82中并可在处理器81上运行的计算机程序83。处理器81执行计算机程序83时实现上述多项目组件化实现方法实施例中的步骤,例如图1所示的步骤S10至S40。或者,处理器81执行计算机程序83时实现上述多项目组件化实现装置实施例中各模块/单元的功能,例如图7所示项目组件配置请求获取模块10、npm资源包获取模块20、目标项目公共组件获取模块30和多项目组件封装文件获取模块40的功能。

示例性的,计算机程序83可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器82中,并由处理器81执行,以完成本发明。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序83在终端设备80中的执行过程。例如,计算机程序83可以被分割成项目组件配置请求获取模块10、npm资源包获取模块20、目标项目公共组件获取模块30和多项目组件封装文件获取模块40。

终端设备80可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。终端设备可包括,但不仅限于,处理器81、存储器82。本领域技术人员可以理解,图8仅仅是终端设备80的示例,并不构成对终端设备80的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如终端设备还可以包括输入输出设备、网络接入设备、总线等。

所称处理器81可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

存储器82可以是终端设备80的内部存储单元,例如终端设备80的硬盘或内存。存储器82也可以是终端设备80的外部存储设备,例如终端设备80上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器82还可以既包括终端设备80的内部存储单元也包括外部存储设备。存储器82用于存储计算机程序以及终端设备所需的其他程序和数据。存储器82还可以用于暂时地存储已经输出或者将要输出的数据。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。

以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1