掌桥专利:专业的专利平台
掌桥专利
首页

前端物料发布方法、装置、设备及存储介质

文献发布时间:2023-06-19 11:08:20


前端物料发布方法、装置、设备及存储介质

技术领域

本发明涉及研发管理领域,尤其涉及一种前端物料发布方法、装置、设备及存储介质。

背景技术

随着计算机技术的高速发展,前端技术在计算机技术中扮演着十分重要的角色。在常规的前端开发工作中,通常采用一些开源的组件库提供的基础组件来搭建发布平台,比如Antd、ElementUI等。但是,在实际业务的场景中,这些基础组件其实很难直接满足前端开发的需求。

在传统的物料库平台中,如果想要从一个现有项目中抽离物料组件往往伴随着比较繁琐的流程。用户需要新建工程,再抽离原有代码逻辑,在新的工程中打包发布到NPM源,最后在物料平台上提交注册自己的物料,但是传统的物料库平台难以满足用户快速共享以及复用的需求。

发明内容

本发明的主要目的在于解决如何提高前端物料发布的效率的技术问题。

本发明第一方面提供了一种前端物料发布方法,所述前端物料发布方法包括:

获取前端物料发布请求并生成临时发布目录,所述发布请求包括:待发布的物料文件对应的物料名称;

根据所述物料名称,对所述物料文件与所有文件目录下的其他物料文件进行文件依赖关系解析,得到所述物料名称对应的文件依赖关系图;

循环对所述文件依赖关系图中的物料文件进行文件依赖关系递归解析,并根据递归解析结果更新所述文件依赖关系图;

将更新后的所述依赖关系图对应的所有物料文件拷贝至所述临时发布目录,并将所述临时发布目录下的所有物料文件发布至预置NPM仓库。

可选的,在本发明第一方面的第一种实现方式中,所述获取前端物料发布请求并生成临时发布目录包括:

获取前端物料发布请求,并提取所述发布请求中待发布的物料文件对应的物料名称;

调用预置命令行工具,创建所述待发布的物料文件对应物料名称的临时发布目录。

可选的,在本发明第一方面的第二种实现方式中,所述根据所述物料名称,对所述物料文件与所有文件目录下的其他物料文件进行文件依赖关系解析,得到所述物料名称对应的文件依赖关系图包括:

对所述物料文件与所有文件目录下的其他物料文件进行文件依赖关系解析,确定所述物料文件具有文件依赖关系的多个依赖文件;

提取所述各依赖文件的Key值,并根据所述各依赖文件的Key值顺序生成所述物料名称对应的文件依赖关系图。

可选的,在本发明第一方面的第三种实现方式中,所述循环对所述文件依赖关系图中的物料文件进行文件依赖关系递归解析,并根据递归解析结果更新所述文件依赖关系图包括:

循环对所述文件依赖关系图中的物料文件进行文件依赖关系递归解析,直至所述文件依赖关系图中的物料文件的所有文件依赖关系解析完成,得到所述文件依赖关系图中物料文件的多个依赖文件;

根据所述文件依赖关系图中各物料文件对应依赖文件的Key值顺序,更新所述文件依赖关系图,得到更新后的依赖关系图。

可选的,在本发明第一方面的第四种实现方式中,所述将更新后的所述依赖关系图对应的所有物料文件拷贝至所述临时发布目录,并将所述临时发布目录下的所有物料文件发布至预置NPM仓库包括:

将更新后的所述依赖关系图对应的所有物料文件拷贝至所述临时发布目录;

判断所述前端物料发布请求中的账户信息是否有效;

若有效,则将所述临时发布目录推送至预置NPM仓库。

可选的,在本发明第一方面的第五种实现方式中,在所述将所述临时发布目录下的所有物料文件发布至预置NPM仓库之后,还包括:

将所述临时发布目录下的所有物料文件转换为NPM包;

对所述NPM包进行预置钩子函数运算,得到所述NPM包的包名,并将所述NPM包的包名提交至预置物料库。

本发明第二方面提供了一种前端物料发布装置,所述前端物料发布装置包括:

获取模块,用于获取前端物料发布请求并生成临时发布目录,所述发布请求包括:待发布的物料文件对应的物料名称;

解析模块,用于根据所述物料名称,对所述物料文件与所有文件目录下的其他物料文件进行文件依赖关系解析,得到所述物料名称对应的文件依赖关系图;

更新模块,用于循环对所述文件依赖关系图中的物料文件进行文件依赖关系递归解析,并根据递归解析结果更新所述文件依赖关系图;

发布模块,用于将更新后的所述依赖关系图对应的所有物料文件拷贝至所述临时发布目录,并将所述临时发布目录下的所有物料文件发布至预置NPM仓库。

可选的,在本发明第二方面的第一种实现方式中,所述获取模块具体用于:

获取前端物料发布请求,并提取所述发布请求中待发布的物料文件对应的物料名称;

调用预置命令行工具,创建所述待发布的物料文件对应物料名称的临时发布目录。

可选的,在本发明第二方面的第二种实现方式中,所述解析模块具体用于:

对所述物料文件与所有文件目录下的其他物料文件进行文件依赖关系解析,确定所述物料文件具有文件依赖关系的多个依赖文件;

提取所述各依赖文件的Key值,并根据所述各依赖文件的Key值顺序生成所述物料名称对应的文件依赖关系图。

可选的,在本发明第二方面的第三种实现方式中,所述更新模块具体用于:

循环对所述文件依赖关系图中的物料文件进行文件依赖关系递归解析,直至所述文件依赖关系图中的物料文件的所有文件依赖关系解析完成,得到所述文件依赖关系图中物料文件的多个依赖文件;

根据所述文件依赖关系图中各物料文件对应依赖文件的Key值顺序,更新所述文件依赖关系图,得到更新后的依赖关系图。

可选的,在本发明第二方面的第四种实现方式中,所述发布模块具体用于:

将更新后的所述依赖关系图对应的所有物料文件拷贝至所述临时发布目录;

判断所述前端物料发布请求中的账户信息是否有效;

若有效,则将所述临时发布目录推送至预置NPM仓库。

可选的,在本发明第二方面的第五种实现方式中,所述前端物料发布装置还包括:

提交模块,用于将所述临时发布目录下的所有物料文件转换为NPM包;对所述NPM包进行预置钩子函数运算,得到所述NPM包的包名,并将所述NPM包的包名提交至预置物料库。

本发明第三方面提供了一种前端物料发布设备,包括:存储器和至少一个处理器,所述存储器中存储有指令;所述至少一个处理器调用所述存储器中的所述指令,以使得所述前端物料发布设备执行上述的前端物料发布方法。

本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的前端物料发布方法。

本发明提供的技术方案中,通过以单个文件目录为单位和自动化的依赖收集实现了前端物料的快速发布与使用,同时提供物料库站点来方便用户搜索和使用,具体为:通过物料发布平台获取到前端物料发布的请求并生成临时发布目录;根据发布请求中的物料名称信息,对待发布的物料文件与所有文件目录下的其他物料文件进行文件依赖关系解析,并生成对应的文件依赖关系图;再循环对文件依赖关系图中的物料文件进行文件依赖关系递归解析更新所述文件依赖关系图;将更新后的依赖关系图对应的所有物料文件拷贝至临时发布目录,最后将临时发布目录下的所有物料文件发布至预置NPM仓库,完成前端物料的快速发布。本发明通过自动化的依赖收集,实现了前端物料的快速发布。

附图说明

图1为本发明实施例中前端物料发布方法的第一个实施例示意图;

图2为本发明实施例中前端物料发布方法的第二个实施例示意图;

图3为本发明实施例中前端物料发布方法的第三个实施例示意图;

图4为本发明实施例中前端物料发布装置的一个实施例示意图;

图5为本发明实施例中前端物料发布设备的一个实施例示意图。

具体实施方式

本发明实施例提供了一种前端物料发布方法、装置、设备及存储介质。本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中前端物料发布方法的第一个实施例包括:

101、获取前端物料发布请求并生成临时发布目录,所述发布请求包括:待发布的物料文件对应的物料名称;

可以理解的是,本发明的执行主体可以为前端物料发布装置,还可以是终端或者服务器,具体此处不做限定。本发明实施例以服务器为执行主体为例进行说明。

本实施例中,前端物料发布请求可由发布系统发起,发布时必须由用户配置账号信息和发布物料的名称信息。在发布系统中预设Package.json和Npmrc文件中的基本内容,然后根据用户配置物料名称信息替换掉原有模板文件中的部分信息,最终通过Node提供的FS文本读写工具,生成临时发布文件。

可选的,在一实施例中,所述获取前端物料发布请求并生成临时发布目录包括:

获取前端物料发布请求,并提取所述发布请求中待发布的物料文件对应的物料名称;

调用预置命令行工具,创建所述待发布的物料文件对应物料名称的临时发布目录。

本实施例中,物料名称为我们发布到NPM仓库的NPM包名称,该名称用于描述该物料的基本功能信息,物料发布请求中还包括用户的账号信息,账号信息用于判断是否发布物料NPM包。命令行工具是基于Node的NPM平台开发,执行NPM install-g@pafe/nam全局安装。在安装完成后会自动注册一个全局的命令Pa-nam。用户可以通过在命令行执行Pa-nam的一些指令来完成物料发布以及服用的过程。

102、根据所述物料名称,对所述物料文件与所有文件目录下的其他物料文件进行文件依赖关系解析,得到所述物料名称对应的文件依赖关系图;

本实施例中,在前端物料中会通过Import的方式从其他文件中引入一些函数或者变量,而这些被引入的文件就成为了当前文件的依赖文件。对依赖文件继续进行解析,得到依赖文件的依赖文件,从而确保所述临时发布文件的所有依赖文件都解析完。

可选的,在一实施例中,所述根据所述物料名称,对所述物料文件与所有文件目录下的其他物料文件进行文件依赖关系解析,得到所述物料名称对应的文件依赖关系图包括:

对所述物料文件与所有文件目录下的其他物料文件进行文件依赖关系解析,确定所述物料文件具有文件依赖关系的多个依赖文件;

提取所述各依赖文件的Key值,并根据所述各依赖文件的Key值顺序生成所述物料名称对应的文件依赖关系图。

本实施例中,每个Key值对应一个依赖文件,相同的Key react会认为是同一个组件,这样后续相同的Key值对应组件都不会被创建,而有了Key值属性后,就可以与依赖文件建立了一种对应关系,React根据Key值来创建依赖图。

103、循环对所述文件依赖关系图中的物料文件进行文件依赖关系递归解析,并根据递归解析结果更新所述文件依赖关系图;

104、将更新后的所述依赖关系图对应的所有物料文件拷贝至所述临时发布目录,并将所述临时发布目录下的所有物料文件发布至预置NPM仓库。

本实施例中,NPM是Node.js平台的默认包管理工具,包含多个包的结构,能够跟踪依赖项和版本,NPM由三个独立的部分组成:网站是开发者查找包、设置参数以及管理NPM使用体验的主要途径;注册表是一个巨大的数据库,保存了每个NPM包的信息;命令行工具:通过命令行或终端运行。执行预置NPM publish命令需要验证前端物料发布请求中的账户信息是否为有效信息,若有效,则将临时发布目录通过NPM publish发布到NPM仓库,完成前端物料发布。

可选的,在一实施例中,所述将更新后的所述依赖关系图对应的所有物料文件拷贝至所述临时发布目录,并将所述临时发布目录下的所有物料文件发布至预置NPM仓库包括:

将更新后的所述依赖关系图对应的所有物料文件拷贝至所述临时发布目录;

判断所述前端物料发布请求中的账户信息是否有效;

若有效,则将所述临时发布目录推送至预置NPM仓库。

本实施例中,前端物料发布是以目录为单位,会将当前目录的所有文件发布到NPM仓库,如果该目录下的文件依赖其他目录的文件,则其他目录的文件是不会被发布动NPM仓库系统的,这时我们需要将这些依赖文件移动到临时发布目录下,这样才不会造成发布时文件不全的情况。

本发明实施例中,通过以单个文件目录为单位和自动化的依赖收集实现了前端物料的快速发布与使用,同时提供物料库站点来方便用户搜索和使用,具体为:通过物料发布平台获取到前端物料发布的请求并生成临时发布目录;根据发布请求中的物料名称信息,对待发布的物料文件与所有文件目录下的其他物料文件进行文件依赖关系解析,并生成对应的文件依赖关系图;再循环对文件依赖关系图中的物料文件进行文件依赖关系递归解析更新所述文件依赖关系图;将更新后的依赖关系图对应的所有物料文件拷贝至临时发布目录,最后将临时发布目录下的所有物料文件发布至预置NPM仓库,完成前端物料的快速发布。本发明通过自动化的依赖收集,实现了前端物料的快速发布。

请参阅图2,本发明实施例中前端物料发布方法的第二个实施例包括:

201、获取前端物料发布请求并生成临时发布目录,所述发布请求包括:待发布的物料文件对应的物料名称;

202、根据所述物料名称,对所述物料文件与所有文件目录下的其他物料文件进行文件依赖关系解析,得到所述物料名称对应的文件依赖关系图;

203、循环对所述文件依赖关系图中的物料文件进行文件依赖关系递归解析,直至所述文件依赖关系图中的物料文件的所有文件依赖关系解析完成,得到所述文件依赖关系图中物料文件的多个依赖文件;

204、根据所述文件依赖关系图中各物料文件对应依赖文件的Key值顺序,更新所述文件依赖关系图,得到更新后的依赖关系图;

本实施例中,递归解析就是通过临时发布文件,解析出待发布物料文件的所有依赖项,将解析后的文件标记为已解析,然后再递归的将所有依赖项当作入口文件进行解析,遇到标记为已解析的文件直接跳过,直到将所有依赖文件全部解析完成。生成的依赖图是一个以当前文件名称为Key的对象,对象的每个值记录该文件的所有依赖项。

205、将更新后的所述依赖关系图对应的所有物料文件拷贝至所述临时发布目录,并将所述临时发布目录下的所有物料文件发布至预置NPM仓库。

本发明实施例中,在基于物料体系的开发中,提供了使用项目物料来初始化前端工程,提供最佳实践,解决工程问题,再使用区块和组件像搭积木一样快速搭建页面的功能,以单个文件目录为单位,通过自动化的依赖收集,以及自动化的项目发布临时工程构建实现了前端物料的快速发布与使用。

请参阅图3,本发明实施例中前端物料发布方法的第三个实施例包括:

301、获取前端物料发布请求并生成临时发布目录,所述发布请求包括:待发布的物料文件对应的物料名称;

302、根据所述物料名称,对所述物料文件与所有文件目录下的其他物料文件进行文件依赖关系解析,得到所述物料名称对应的文件依赖关系图;

303、循环对所述文件依赖关系图中的物料文件进行文件依赖关系递归解析,并根据递归解析结果更新所述文件依赖关系图;

304、将更新后的所述依赖关系图对应的所有物料文件拷贝至所述临时发布目录,并将所述临时发布目录下的所有物料文件发布至预置NPM仓库;

305、将所述临时发布目录下的所有物料文件转换为NPM包;

306、对所述NPM包进行预置钩子函数运算,得到所述NPM包的包名,并将所述NPM包的包名提交至预置物料库。

本实施例中,利用钩子函数可以捕捉进程或其它进程发生的事件,通过"钩挂"可以给发布系统一个处理或过滤事件的回调函数,该函数也叫做"钩子函数",当NPM仓库生成NPM包时发布系统都将调用该函数。物料库是一个网站,包含前端页面和后端接口,其中,前端通过React构建网页,后端通过Nest.js构建接口。将所述NPM包的包名提交到物料库后,提交的信息将会更加明确的展示该物料的功能和使用方式,方便用户快速了解该物料。

本发明实施例中,在物料库站点搜索对应的物料,可以通过常规的NPM install来安装相应的依赖并在项目中使用,也可以采用命令行@pafe/nam工具通过命令拉取NPM源的压缩包,并在本地解压后最终输送到指定的目录中。

上面对本发明实施例中前端物料发布方法进行了描述,下面对本发明实施例中前端物料发布装置进行描述,请参阅图4,本发明实施例中前端物料发布装置一个实施例包括:

获取模块401,用于获取前端物料发布请求并生成临时发布目录,所述发布请求包括:待发布的物料文件对应的物料名称;

解析模块402,用于根据所述物料名称,对所述物料文件与所有文件目录下的其他物料文件进行文件依赖关系解析,得到所述物料名称对应的文件依赖关系图;

更新模块403,用于循环对所述文件依赖关系图中的物料文件进行文件依赖关系递归解析,并根据递归解析结果更新所述文件依赖关系图;

发布模块404,用于将更新后的所述依赖关系图对应的所有物料文件拷贝至所述临时发布目录,并将所述临时发布目录下的所有物料文件发布至预置NPM仓库。

可选的,在一实施例中,所述获取模块401具体用于:

获取前端物料发布请求,并提取所述发布请求中待发布的物料文件对应的物料名称;

调用预置命令行工具,创建所述待发布的物料文件对应物料名称的临时发布目录。

可选的,在一实施例中,所述解析模块402具体用于:

对所述物料文件与所有文件目录下的其他物料文件进行文件依赖关系解析,确定所述物料文件具有文件依赖关系的多个依赖文件;

提取所述各依赖文件的Key值,并根据所述各依赖文件的Key值顺序生成所述物料名称对应的文件依赖关系图。

可选的,在一实施例中,所述更新模块403具体用于:

循环对所述文件依赖关系图中的物料文件进行文件依赖关系递归解析,直至所述文件依赖关系图中的物料文件的所有文件依赖关系解析完成,得到所述文件依赖关系图中物料文件的多个依赖文件;

根据所述文件依赖关系图中各物料文件对应依赖文件的Key值顺序,更新所述文件依赖关系图,得到更新后的依赖关系图。

可选的,在一实施例中,所述发布模块404具体用于:

将更新后的所述依赖关系图对应的所有物料文件拷贝至所述临时发布目录;

判断所述前端物料发布请求中的账户信息是否有效;

若有效,则将所述临时发布目录推送至预置NPM仓库。

可选的,在一实施例中,所述前端物料发布装置还包括:

提交模块405,用于将所述临时发布目录下的所有物料文件转换为NPM包;对所述NPM包进行预置钩子函数运算,得到所述NPM包的包名,并将所述NPM包的包名提交至预置物料库。

本发明实施例中,通过以单个文件目录为单位和自动化的依赖收集实现了前端物料的快速发布与使用,同时提供物料库站点来方便用户搜索和使用,具体为:通过物料发布平台获取到前端物料发布的请求并生成临时发布目录;根据发布请求中的物料名称信息,对待发布的物料文件与所有文件目录下的其他物料文件进行文件依赖关系解析,并生成对应的文件依赖关系图;再循环对文件依赖关系图中的物料文件进行文件依赖关系递归解析更新所述文件依赖关系图;将更新后的依赖关系图对应的所有物料文件拷贝至临时发布目录,最后将临时发布目录下的所有物料文件发布至预置NPM仓库,完成前端物料的快速发布。本发明通过自动化的依赖收集,实现了前端物料的快速发布。

上面图4从模块化功能实体的角度对本发明实施例中的前端物料发布装置进行详细描述,下面从硬件处理的角度对本发明实施例中前端物料发布设备进行详细描述。

图5是本发明实施例提供的一种前端物料发布设备的结构示意图,该前端物料发布设备500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)510(例如,一个或一个以上处理器)和存储器520,一个或一个以上存储应用程序533或数据532的存储介质530(例如一个或一个以上海量存储设备)。其中,存储器520和存储介质530可以是短暂存储或持久存储。存储在存储介质530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对前端物料发布设备500中的一系列指令操作。更进一步地,处理器510可以设置为与存储介质530通信,在前端物料发布设备500上执行存储介质530中的一系列指令操作。

前端物料发布设备500还可以包括一个或一个以上电源540,一个或一个以上有线或无线网络接口550,一个或一个以上输入输出接口560,和/或,一个或一个以上操作系统531,例如Windows Serve,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图5示出的前端物料发布设备结构并不构成对前端物料发布设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

本发明还提供一种前端物料发布设备,所述前端物料发布设备包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行上述各实施例中的所述前端物料发布方法的步骤。

本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述前端物料发布方法的步骤。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

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

相关技术
  • 前端物料发布方法、装置、设备及存储介质
  • 前端版本发布的方法及装置、存储介质及电子设备
技术分类

06120112811388