CN113238795A - 组件发布方法、装置、电子设备、存储介质及程序产品 - Google Patents
组件发布方法、装置、电子设备、存储介质及程序产品 Download PDFInfo
- Publication number
- CN113238795A CN113238795A CN202110528229.2A CN202110528229A CN113238795A CN 113238795 A CN113238795 A CN 113238795A CN 202110528229 A CN202110528229 A CN 202110528229A CN 113238795 A CN113238795 A CN 113238795A
- Authority
- CN
- China
- Prior art keywords
- component
- folder
- project development
- published
- file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000011161 development Methods 0.000 claims abstract description 178
- 230000001419 dependent effect Effects 0.000 claims description 36
- 238000012986 modification Methods 0.000 claims description 11
- 230000004048 modification Effects 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 8
- 230000008569 process Effects 0.000 abstract description 10
- 238000010586 diagram Methods 0.000 description 10
- 230000004044 response Effects 0.000 description 9
- 238000004458 analytical method Methods 0.000 description 8
- 238000012423 maintenance Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 238000012856 packing Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本公开关于一种组件发布方法、装置、电子设备、存储介质及程序产品,该方法是在项目开发环境中,首先,若项目开发文件夹为组件文件夹,则获取项目开发文件夹的组件依赖关系,并将组件依赖关系写入初始描述文件,得到目标描述文件;其次,将目标描述文件与项目开发文件夹中未压缩处理的组件源码进行合并,生成未压缩处理的待发布组件;最后,发布未压缩处理的待发布组件至组件仓库。本公开在项目开发环境中实现了组件的发布,简化了组件的开发和发布流程,缩短前端项目的开发时间,降低项目时间成本。
Description
技术领域
本公开涉及计算机应用技术领域,尤其涉及一种组件发布方法、装置、电子设备、存储介质及程序产品。
背景技术
随着组件化开发的流行,越来越多的前端项目采用组件形式进行开发。比如,首先,将网页页面分成许多组件,每个组件可以是网页中具有特定功能的部分;然后开发各个组件;最后,将这些组件嵌套或者组合成一个页面。
相关技术中,在项目开发环境中完成组件开发后封装并发布组件,组件发布方式包括两种:一是将封装后的组件发布在线上公共环境中,供其他开发者复用该组件;二是将封装后的组件保存在前端开发环境本地,供开发者自己复用该组件。
然而,相关技术中的组件发布方式影响着项目开发的时间成本。
发明内容
本公开提供一种组件发布方法、装置、电子设备、存储介质及程序产品,以至少解决相关技术中组件发布方式影响着项目开发的时间成本的问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种组件发布方法,包括:
若所述项目开发文件夹为组件文件夹,则获取所述项目开发文件夹的组件依赖关系,将所述组件依赖关系写入初始描述文件,得到目标描述文件;所述项目开发文件夹包括未压缩处理的组件源码,所述初始描述文件用于记录所述组件文件夹所依赖的组件的信息;
将所述目标描述文件与所述未压缩处理的组件源码进行合并,生成未压缩的待发布组件;
发布所述待发布组件至组件仓库。
在其中一个实施例中,所述若项目开发文件夹为组件文件夹,包括:
若根据所述项目开发文件夹内的信息文件确定所述项目开发文件夹为组件文件夹;所述信息文件用于声明所述项目开发文件夹是否为组件文件夹;
所述将所述目标描述文件与所述未压缩处理的组件源码进行合并,生成未压缩的待发布组件,包括:
将所述目标描述文件、所述信息文件与所述未压缩处理的组件源码进行合并,生成所述待发布组件。
在其中一个实施例中,所述信息文件的生成方式包括:
响应于所述项目开发文件夹的选择指令,进入所述项目开发文件夹;
初始化所述项目开发文件夹,在所述项目开发文件夹内生成所述信息文件。
在其中一个实施例中,所述方法还包括:
若已发布组件需要更新,从所述组件仓库中获取所述已发布组件;所述已发布组件的格式为未压缩处理的文件夹;
响应于所述已发布组件的修改指令,对所述已发布组件的源码进行修改,得到更新后的组件源码。
在其中一个实施例中,在得到更新后的组件源码之后,所述方法还包括:
获取更新后的组件的新组件依赖关系;
将所述新组件依赖关系写入所述已发布组件的目标描述文件,得到新待发布组件;
重新发布所述新待发布组件至所述组件仓库。
在其中一个实施例中,所述获取所述项目开发文件夹的组件依赖关系,包括:
读取所述项目开发文件夹的依赖组件的文件字符串;
从项目根目录下的项目配置文件中,根据所述依赖组件的文件字符串获取所述依赖组件的版本号;
根据所述依赖组件的文件字符串和所述依赖组件的版本号,确定所述组件依赖关系。
在其中一个实施例中,所述目标描述文件中记录有所述待发布组件的版本号;所述发布所述待发布组件至组件仓库,包括:
根据所述目标描述文件中记录的版本号,更新所述待发布组件的版本号;
根据当前开发者的用户信息登录至所述组件仓库所在的服务器,并将所述待发布组件发布至所述组件仓库。
在其中一个实施例中,所述发布所述待发布组件至组件仓库,包括:
从所述信息文件中获取所述组件仓库的发布地址,根据所述发布地址,将所述待发布组件发布至所述组件仓库。
根据本公开实施例的第二方面,提供一种组件发布装置,包括:
关系获取模块,被配置为执行若所述当前文件夹为组件文件夹,则获取所述项目开发文件夹的组件依赖关系,将所述组件依赖关系写入初始描述文件,得到目标描述文件;所述项目开发文件夹包括未压缩处理的组件源码,所述初始描述文件用于记录所述组件文件夹所依赖的组件的信息;
组件生成模块,被配置为执行将所述目标描述文件与所述未压缩处理的组件源码进行合并,生成未压缩的待发布组件;
组件发布模块,被配置为执行发布所述待发布组件至组件仓库。
在其中一个实施例中,所述关系获取模块,还被配置为执行若根据所述项目开发文件夹内的信息文件确定所述项目开发文件夹为组件文件夹,则获取所述项目开发文件夹的组件依赖关系,将所述组件依赖关系写入初始描述文件,所述信息文件用于声明所述项目开发文件夹是否为组件文件夹;
所述组件生成模块,还被配置为执行将所述目标描述文件、所述信息文件与所述未压缩处理的组件源码进行合并,生成所述待发布组件。
在其中一个实施例中,所述组件发布装置还包括信息文件生成模块,被配置为执行响应于所述项目开发文件夹的选择指令,进入所述项目开发文件夹;初始化所述项目开发文件夹,在所述项目开发文件夹内生成所述信息文件。
在其中一个实施例中,所述组件发布装置还包括组件获取模块和组件修改模块;其中:
所述组件获取模块,被配置为执行若已发布组件需要更新,从所述组件仓库中获取所述已发布组件;所述已发布组件的格式为未压缩处理的文件夹;
所述组件修改模块,被配置为执行响应于所述已发布组件的修改指令,对所述已发布组件的源码进行修改,得到更新后的组件源码。
在其中一个实施例中,所述组件发布装置还包括重新发布模块,被配置为执行获取更新后的组件的新组件依赖关系;将所述新组件依赖关系写入所述已发布组件的目标描述文件,得到新待发布组件;重新发布所述新待发布组件至所述组件仓库。
在其中一个实施例中,所述关系获取模块,还被配置为执行读取所述项目开发文件夹的依赖组件的文件字符串;从项目根目录下的项目配置文件中,根据所述依赖组件的文件字符串获取所述依赖组件的版本号;根据所述依赖组件的文件字符串和所述依赖组件的版本号,确定所述组件依赖关系。
在其中一个实施例中,所述目标描述文件中记录有所述待发布组件的版本号;所述组件发布模块,还被配置为执行根据所述目标描述文件中记录的版本号,更新所述待发布组件的版本号;根据当前开发者的用户信息登录至所述组件仓库所在的服务器,并将所述待发布组件发布至所述组件仓库。
在其中一个实施例中,所述组件发布模块,还被配置为执行从所述信息文件中获取所述组件仓库的发布地址,根据所述发布地址,将所述待发布组件发布至所述组件仓库。
根据本公开实施例的第三方面,提供一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现第一方面的任一项实施例中所述的方法。
根据本公开实施例的第四方面,一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如第一方面的任一项实施例中所述的方法。
根据本公开实施例的第五方面,提供一种计算机程序产品,所述程序产品包括计算机程序,所述计算机程序存储在可读存储介质中,设备的至少一个处理器从所述可读存储介质读取并执行所述计算机程序,使得设备执行第一方面的任一项实施例中所述的方法。
本公开的实施例提供的技术方案至少带来以下有益效果:
在项目开发环境中,首先,若项目开发文件夹为组件文件夹,则获取项目开发文件夹的组件依赖关系,并将组件依赖关系写入初始描述文件,得到目标描述文件;其次,将目标描述文件与项目开发文件夹中未压缩处理的组件源码进行合并,生成未压缩处理的待发布组件;最后,发布未压缩处理的待发布组件至组件仓库。本公开在项目开发环境中实现了组件的发布,简化了组件的开发和发布流程,缩短前端项目的开发时间,降低项目时间成本。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种组件发布方法的应用环境图。
图2是根据一示例性实施例示出的一种组件发布方法的流程图。
图3是根据一示例性实施例示出的一种组件发布方法的流程图。
图4是根据一示例性实施例示出的一种组件发布方法的流程图。
图5是根据一示例性实施例示出的一种组件发布方法的流程图。
图6是根据一示例性实施例示出的步骤S210的流程图。
图7是根据一示例性实施例示出的一种组件发布方法的流程图。
图8是根据一示例性实施例示出的一种组件发布装置的框图。
图9是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在相关技术中,在开发前端项目时,开发者通常会将可复用的代码片段编写为组件,以提供代码的复用,从而提升开发效率。在前端项目开发过程中,需要搭建项目开发环境和组件发布环境,组件发布环境是专门用于发布和调试组件的环境。开发者在项目开发环境中进行组件开发和封装;然后将组件手动拷贝至组件发布环境中,在组件开发环境中进行调试,编写说明文档;最后打包并发布组件至组件仓库中,作为共享组件。发布的组件采用压缩格式。当其他开发者需要用到该共享组件时,从组件仓库中下载该共享组件进行使用。当该共享组件需要更新或者出现问题时,由于经过打包压缩的共享组件可读性比较差,因此需要切换至组件发布环境对该共享组件进行修改、调试以更新该共享组件,并将更新后的共享组件发布至组件仓库中。开发者需要再次切换至项目开发环境中,从组件仓库中下载更新后的共享组件。
经过研究,发明人发现:经过打包产生的压缩代码可读性差,特别是在组件需要维护时,若在压缩代码的基础上进行修改是十分困难的。而且需要在项目开发环境与组件发布环境之间来回切换,组件开发以及发布过程繁琐,影响了项目开发的时间成本。
基于此,本公开提供一种组件发布方法,可以应用于如图1所示的应用环境中。其中,部署有项目开发环境的计算机设备110通过网络与组件仓库120进行交互。在项目开发环境中,可以根据项目开发文件夹内的信息文件判断项目开发文件夹是否为组件文件夹;信息文件用于声明项目开发文件夹是否为组件文件夹,项目开发文件夹包括未压缩处理的组件源码;若项目开发文件夹为组件文件夹,则获取项目开发文件夹的组件依赖关系,将组件依赖关系写入初始描述文件,得到目标描述文件;初始描述文件用于记录组件文件夹所依赖的组件的信息;将目标描述文件、信息文件与未压缩处理的组件源码进行合并,生成待发布组件;待发布组件的格式为未压缩处理的文件夹;发布待发布组件至组件仓库120。计算机设备110可以是用于开发前端组件的服务器。本公开的计算机设备110也可以用于组件发布。在组件需要更新或者出现问题时,还可以在本公开的计算机设备110中对组件进行维护。
图2是根据一示例性实施例示出的一种组件发布方法的流程图,如图2所示,该组件发布方法用于图1中的计算机设备110中,包括以下步骤:
在步骤S210中,若项目开发文件夹为组件文件夹,则获取项目开发文件夹的组件依赖关系,将组件依赖关系写入初始描述文件,得到目标描述文件。
其中,组件是对数据和方法的简单封装,作为自定义元素来使用。组件可以是一可复用的代码片段,比如可以包括字体图标、下拉菜单、导航、警告框、弹出框等更多功能。项目开发文件夹包括未压缩处理的组件源码,初始描述文件用于记录组件文件夹所依赖的组件的信息。在前端项目中,主要通过若干个组件以及若干个组件之间的相互配合实现相应的功能,因此,前端项目中所包括的多个组件之间存在着错综复杂的依赖关系。组件依赖关系是一个组件与其所依赖或者所使用的组件之间的依赖关系,比如组件A运行后组件B才能运行。项目开发文件夹内包括初始描述文件,初始描述文件可以是一个说明文档或者描述文档,该初始描述文件用于记录当前项目开发文件夹所依赖组件的信息。
具体地,本公开中的项目开发环境可以用于组件发布。项目开发环境中包括各种各样的项目开发文件夹,部分项目开发文件夹可以是组件文件夹(且已经预先设定组件文件夹的依赖关系),部分项目开发文件夹可以是除组件文件夹之外的非组件文件夹。因此,在项目开发环境中进行组件发布时,需要判断项目开发文件夹是否为组件文件夹。若项目开发文件夹为组件文件夹,则在项目开发环境中执行组件分析指令,获取项目开发文件夹的组件依赖关系,并将获取的组件依赖关系写入初始描述文件。将该项目开发文件夹的组件依赖关系写入初始描述文件,得到目标描述文件。可以理解的是,目标描述文件可以是项目开发文件夹中的package.json文件。
在步骤S220中,将目标描述文件与未压缩处理的组件源码进行合并,生成未压缩的待发布组件。
其中,待发布组件的格式为未压缩处理的文件夹。具体地,为了提高开发效率,若项目开发文件夹为组件文件夹,可以将项目开发文件夹作为共享组件进行发布。在使用者使用项目开发文件夹时,还需要得知项目开发文件夹的组件依赖关系,因此需要将记录有组件依赖关系的目标描述文件作为待发布组件的一部分。为了提升组件可读性,本公开中的组件源码处于未经过压缩处理的状态,将目标描述文件与未压缩处理的组件源码进行合并,生成待发布组件。由于本公开在合并目标描述文件与未压缩处理的组件源码之后,不执行打包压缩处理,因此待发布组件的格式为未压缩处理的文件夹。
在步骤S230中,发布待发布组件至组件仓库。
其中,组件仓库是用于存放共享组件的服务器或者服务器集群。具体地,在生成待发布组件之后,执行组件发布指令,将目标描述文件与未压缩处理的组件源码合并生成的待发布组件作为共享组件发布至组件仓库。可以理解的是,待发布组件可以是npm组件包,组件仓库可以是npm组件市场。npm(Node Package Manager,Node.js平台的默认包管理工具)由三个独立的部分组成:网站、注册表(registry)和命令行工具(CLI)。网站是开发者查找代码模块(package)、设置参数以及管理npm使用体验的主要途径。注册表是一个巨大的数据库,保存了每个代码模块(package)的信息。命令行工具通过命令行或终端运行,开发者通过命令行工具与npm进行交互。
上述组件发布方法中,在项目开发环境中,首先,若项目开发文件夹为组件文件夹,则获取项目开发文件夹的组件依赖关系,并将组件依赖关系写入初始描述文件,得到目标描述文件;其次,将目标描述文件与项目开发文件夹中未压缩处理的组件源码进行合并,生成未压缩处理的待发布组件;最后,发布未压缩处理的待发布组件至组件仓库。本公开在项目开发环境中实现了组件的发布,省去了组件发布环境的建设时间,并且避免手动将组件拷贝至组件发布环境中,简化了组件的开发和发布流程,缩短前端项目的开发时间,降低项目时间成本。
在一示例性实施例中,在步骤S210中,所述若项目开发文件夹为组件文件夹,包括:若根据所述项目开发文件夹内的信息文件确定所述项目开发文件夹为组件文件夹。并且,在步骤S220中,所述将所述目标描述文件与所述未压缩处理的组件源码进行合并,生成未压缩的待发布组件,包括:将所述目标描述文件、所述信息文件与所述未压缩处理的组件源码进行合并,生成所述待发布组件。
其中,信息文件是项目开发文件夹中的一个文件,比如信息文件可以是后缀名为map的文件。所述信息文件用于声明所述项目开发文件夹是否为组件文件夹。
具体地,在项目开发环境中,需要判断项目开发文件夹是否为组件文件夹。项目开发文件夹包括信息文件,可以根据所述项目开发文件夹内的信息文件判断所述项目开发文件夹是否为组件文件夹。若根据所述项目开发文件夹内的信息文件确定所述项目开发文件夹为组件文件夹,则获取项目开发文件夹的组件依赖关系,将组件依赖关系写入初始描述文件,得到目标描述文件。
在生成待发布组件时,首先,由于并不是所有的文件夹都可以认为是组件,因此需要将用于声明项目开发文件夹为组件文件夹的信息文件作为待发布组件的一部分,以使使用者在使用时可以得知该项目开发文件夹为组件文件夹。其次,在使用者使用项目开发文件夹时,还需要得知项目开发文件夹的组件依赖关系,因此需要将记录有组件依赖关系的目标描述文件作为待发布组件的一部分。最后,为了提升组件可读性,本公开中的组件源码不进行压缩处理,将目标描述文件、信息文件与未压缩处理的组件源码进行合并,生成待发布组件。由于本公开在合并目标描述文件、信息文件以及未压缩处理的组件源码之后,且不执行打包压缩处理,因此待发布组件的格式为未压缩处理的文件夹。
在一些实施例中,信息文件具有自定义的组件声明变量,组件声明变量值是项目开发文件夹格式的声明。获取项目开发文件夹中是否为组件文件夹的信息文件,从该信息文件中读取组件声明变量值,根据读取的组件声明变量值判断项目开发文件夹是否为组件文件夹。比如,组件声明变量值可以是IsComponent(是否为组件),当组件声明变量值为1时,则表明项目开发文件夹为组件文件夹;当组件声明变量值为0时,则表明项目开发文件夹并不是组件文件夹。
在一示例性实施例中,如图3所示,信息文件的生成方式,包括以下步骤:
在步骤S310中,响应于项目开发文件夹的选择指令,进入项目开发文件夹。
在步骤S320中,初始化项目开发文件夹,在项目开发文件夹内生成信息文件。
具体地,在项目开发环境中,开发者可以选择项目开发文件夹,并进入项目开发文件夹下。执行组件初始化指令,通过组件初始化指令对项目开发文件夹进行初始化,在项目开发文件夹内生成信息文件,可以通过该信息文件中的自定义变量声明项目开发文件夹为组件文件夹。
本实施例中,在项目开发环境中,响应于项目开发文件夹的选择指令,进入项目开发文件夹,并初始化项目开发文件夹,在项目开发文件夹内生成信息文件,为后续执行组件分析指令提供了前提条件。则在执行组件分析指令时,通过该信息文件可知项目开发文件夹为组件文件夹,从而执行组件分析指令对应的分析操作。
在一示例性实施例中,如图4所示,该组件发布方法还包括以下步骤:
在步骤S410中,若已发布组件需要更新,从组件仓库中获取已发布组件。
在步骤S420中,响应于已发布组件的修改指令,对已发布组件的源码进行修改,得到更新后的组件源码。
其中,由于发布至组件仓库中的共享组件采用未压缩处理的组件文件夹的格式,则已发布组件的格式为未压缩处理的文件夹。具体地,已发布组件存放在组件仓库,当已发布组件需要更新时,在项目开发环境中,从组件仓库中下载该已发布组件。由于该已发布组件的格式为未压缩处理的文件夹,其组件源码的可读性强,可以直接对已发布组件触发修改指令,对已发布组件的源码进行修改,并得到更新后的组件源码。
本实施例中,在项目开发环境中直接对待更新组件的源码进行修改,避免从项目开发环境切换至组件发布环境进行修改调试,简化了组件的维护过程。
在一示例性实施例中,如图5所示,在得到更新后的组件源码之后,该组件发布方法还包括以下步骤:
在步骤S510中,获取更新后的组件的新组件依赖关系。
在步骤S520中,将新组件依赖关系写入已发布组件的目标描述文件,得到新待发布组件。
在步骤S530中,重新发布新待发布组件至组件仓库。
具体地,在项目开发环境中,对组件源码更新后,还需要对再次分析新组件依赖关系,对已发布组件的目标描述文件进行更新,则重新执行组件分析指令,获取更新后的组件的新组件依赖关系。将获取的新组件依赖关系写入已发布组件的目标描述文件。由于已经将新组件依赖关系写入目标描述文件对其进行了更新,且已发布组件中本身存在信息文件,且,从而可以得到新待发布组件,需要说明的是,新待发布组件的文件夹中包括信息文件、写入新组件依赖关系的目标描述文件以及更新后未压缩的组件源码。当再次执行组件发布指令时,将新待发布组件作为共享组件,重新发布新待发布组件至组件仓库。
本实施例中,在项目开发环境中直接执行组件维护操作和重新发布操作,避免从项目开发环境切换至组件发布环境进行修改调试,简化了组件的维护过程,而且完全省去了组件发布环境的搭建。
在一示例性实施例中,如图6所示,在步骤S210中,获取项目开发文件夹的组件依赖关系,具体可以通过以下步骤实现:
在步骤S610中,读取项目开发文件夹的依赖组件的文件字符串。
在步骤S620中,从项目根目录下的项目配置文件中,根据依赖组件的文件字符串获取依赖组件的版本号。
在步骤S630中,根据依赖组件的文件字符串和依赖组件的版本号,确定组件依赖关系。
具体地,若项目开发文件夹为组件文件夹,执行组件分析指令,确定项目开发文件夹的依赖组件,读取依赖组件的文件字符串。由于在项目根目录下具有项目配置文件,该项目配置文件中记录有项目所需的各组件的版本号,从而根据依赖组件的文件字符串在该项目配置文件中进行查找,获取依赖组件的版本号。最后,根据依赖组件的文件字符串和依赖组件的版本号,确定组件文件夹的组件依赖关系。可以理解的是,项目配置文件可以是项目根目录下的package.json文件。
本实施例中,通过执行组件分析指令确定项目开发文件夹的组件依赖关系,从而将该项目开发文件夹的组件依赖关系写入初始描述文件,得到目标描述文件,为生成待发布组件提供描述信息,确保待发布组件的完整性。
在一示例性实施例中,目标描述文件中记录有待发布组件的版本号。发布待发布组件至组件仓库,包括:根据目标描述文件中记录的版本号,更新待发布组件的版本号;根据当前开发者的用户信息登录至组件仓库所在的服务器,并将待发布组件发布至组件仓库。
其中,组件发布指令对应的操作可以包括更新版本号、登录组件仓库和组件发布三部分。具体地,目标描述文件中记录有待发布组件的版本号,当执行组件发布指令时,根据目标描述文件中记录的版本号,更新待发布组件的版本号。若要将组件文件夹作为共享组件发布至组件仓库,需要根据当前用户信息登录组件仓库。当前用户信息可以包括用户名和密码,还可以包括当前用户的邮箱信息。当登录至组件仓库后,可以执行组件发布操作,将待发布组件作为共享组件发布至组件仓库。
本实施例中,将更新版本号、登录组件仓库和组件发布三个操作封装为组件发布指令,简化了组件发布的流程,缩短开发者发布组件所花费的时间。
在一示例性实施例中,发布待发布组件至组件仓库,包括:从信息文件中获取组件仓库的发布地址,根据发布地址,将待发布组件发布至组件仓库。
具体地,信息文件是通过执行组件初始化指令而生成,信息文件中记录有组件仓库的发布地址。当登录至组件仓库后,从信息文件中获取组件仓库的发布地址,根据组件仓库的发布地址,将待发布组件作为共享组件发布至组件仓库。
本实施例中,将组件仓库的发布地址存储在信息文件中,保证待发布组件的正常发布,从而实现待发布组件的共享,提升开发效率。
图7是根据一示例性实施例示出的一种组件发布方法的流程图,如图7所示,该组件发布方法用于图1中的应用环境中,包括以下步骤:
在步骤S702中,在项目开发环境中,响应于项目开发文件夹的选择指令,进入项目开发文件夹。
在步骤S704中,初始化项目开发文件夹,在项目开发文件夹内生成信息文件。
在步骤S706中,根据项目开发文件夹内的信息文件确定项目开发文件夹为组件文件夹。
其中,信息文件用于声明项目开发文件夹是否为组件文件夹,项目开发文件夹包括未压缩处理的组件源码。
在步骤S708中,读取项目开发文件夹的依赖组件的文件字符串。
在步骤S710中,从项目根目录下的项目配置文件中,根据依赖组件的文件字符串获取依赖组件的版本号。
在步骤S712中,根据依赖组件的文件字符串和依赖组件的版本号,确定组件依赖关系。
在步骤S714中,将组件依赖关系写入初始描述文件,得到目标描述文件。
其中,初始描述文件用于记录组件文件夹所依赖的组件的信息。
在步骤S716中,将目标描述文件、信息文件与未压缩处理的组件源码进行合并,生成待发布组件。
其中,待发布组件的格式为未压缩处理的文件夹。
在步骤S718中,发布待发布组件至组件仓库。
具体地,根据目标描述文件中记录的版本号,更新待发布组件的版本号;根据当前开发者的用户信息登录至组件仓库所在的服务器,从信息文件中获取组件仓库的发布地址,根据发布地址,将待发布组件发布至组件仓库。
在步骤S720中,若已发布组件需要更新时,在项目开发环境中,从组件仓库中获取已发布组件。
其中,已发布组件的格式为未压缩处理的文件夹。
在步骤S722中,响应于已发布组件的修改指令,对已发布组件的源码进行修改,得到更新后的组件源码。
在步骤S724中,在项目开发环境中,获取更新后的组件的新组件依赖关系。
在步骤S726中,将新组件依赖关系写入已发布组件的目标描述文件,得到新待发布组件。
在步骤S728中,重新发布新待发布组件至组件仓库。
应该理解的是,虽然上述流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
图8是根据一示例性实施例示出的一种组件发布装置框图。参照图8,该装置包括关系获取模块810、组件生成模块810和组件发布模块830。
关系获取模块810,被配置为执行若所述当前文件夹为组件文件夹,则获取所述项目开发文件夹的组件依赖关系,将所述组件依赖关系写入初始描述文件,得到目标描述文件;所述项目开发文件夹包括未压缩处理的组件源码,所述初始描述文件用于记录所述组件文件夹所依赖的组件的信息;
组件生成模块820,被配置为执行将所述目标描述文件与所述未压缩处理的组件源码进行合并,生成未压缩的待发布组件;
组件发布模块830,被配置为执行发布所述待发布组件至组件仓库。
在一示例性实施例中,所述关系获取模块810,还被配置为执行若根据所述项目开发文件夹内的信息文件确定所述项目开发文件夹为组件文件夹,则获取所述项目开发文件夹的组件依赖关系,将所述组件依赖关系写入初始描述文件,所述信息文件用于声明所述项目开发文件夹是否为组件文件夹;
所述组件生成模块820,还被配置为执行将所述目标描述文件、所述信息文件与所述未压缩处理的组件源码进行合并,生成所述待发布组件。
在一示例性实施例中,所述组件发布装置还包括信息文件生成模块,被配置为执行响应于所述项目开发文件夹的选择指令,进入所述项目开发文件夹;初始化所述项目开发文件夹,在所述项目开发文件夹内生成所述信息文件。
在一示例性实施例中,所述组件发布装置还包括组件获取模块和组件修改模块;其中:
所述组件获取模块,被配置为执行若已发布组件需要更新,从所述组件仓库中获取所述已发布组件;所述已发布组件的格式为未压缩处理的文件夹;
所述组件修改模块,被配置为执行响应于所述已发布组件的修改指令,对所述已发布组件的源码进行修改,得到更新后的组件源码。
在一示例性实施例中,所述组件发布装置还包括重新发布模块,被配置为执行获取更新后的组件的新组件依赖关系;将所述新组件依赖关系写入所述已发布组件的目标描述文件,得到新待发布组件;重新发布所述新待发布组件至所述组件仓库。
在一示例性实施例中,所述关系获取模块,还被配置为执行读取所述项目开发文件夹的依赖组件的文件字符串;从项目根目录下的项目配置文件中,根据所述依赖组件的文件字符串获取所述依赖组件的版本号;根据所述依赖组件的文件字符串和所述依赖组件的版本号,确定所述组件依赖关系。
在一示例性实施例中,所述目标描述文件中记录有所述待发布组件的版本号;所述组件发布模块,还被配置为执行根据所述目标描述文件中记录的版本号,更新所述待发布组件的版本号;根据当前开发者的用户信息登录至所述组件仓库所在的服务器,并将所述待发布组件发布至所述组件仓库。
在一示例性实施例中,所述组件发布模块,还被配置为执行从所述信息文件中获取所述组件仓库的发布地址,根据所述发布地址,将所述待发布组件发布至所述组件仓库。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图9是根据一示例性实施例示出的一种用于组件发布的设备900的框图。例如,设备900可以为一服务器。参照图9,设备900包括处理组件920,其进一步包括一个或多个处理器,以及由存储器922所代表的存储器资源,用于存储可由处理组件920的执行的指令,例如应用程序。存储器922中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件920被配置为执行指令,以执行上述组件发布的方法。
设备900还可以包括一个电源组件924被配置为执行设备900的电源管理,一个有线或无线网络接口926被配置为将设备900连接到网络,和一个输入输出(I/O)接口928。设备900可以操作基于存储在存储器922的操作系统,例如Windows Server,Mac OS X,Unix,Linux,FreeBSD或类似。
在示例性实施例中,还提供了一种包括指令的计算机可读存储介质,例如包括指令的存储器922,上述指令可由设备900的处理器执行以完成上述方法。存储介质可以是计算机可读存储介质,例如,所述计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供一种计算机程序产品,包括计算机程序,,所述计算机程序被处理器执行时实现上述实施例中任一项所述的组件发布方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (10)
1.一种组件发布方法,其特征在于,包括:
若所述项目开发文件夹为组件文件夹,则获取所述项目开发文件夹的组件依赖关系,将所述组件依赖关系写入初始描述文件,得到目标描述文件;所述项目开发文件夹包括未压缩处理的组件源码,所述初始描述文件用于记录所述组件文件夹所依赖的组件的信息;
将所述目标描述文件与所述未压缩处理的组件源码进行合并,生成未压缩的待发布组件;
发布所述待发布组件至组件仓库。
2.根据权利要求1所述的组件发布方法,其特征在于,所述若项目开发文件夹为组件文件夹,包括:
若根据所述项目开发文件夹内的信息文件确定所述项目开发文件夹为组件文件夹;所述信息文件用于声明所述项目开发文件夹是否为组件文件夹;
所述将所述目标描述文件与所述未压缩处理的组件源码进行合并,生成未压缩的待发布组件,包括:
将所述目标描述文件、所述信息文件与所述未压缩处理的组件源码进行合并,生成所述待发布组件。
3.根据权利要求2所述的组件发布方法,其特征在于,所述信息文件的生成方式包括:
响应于所述项目开发文件夹的选择指令,进入所述项目开发文件夹;
初始化所述项目开发文件夹,在所述项目开发文件夹内生成所述信息文件。
4.根据权利要求1所述的组件发布方法,其特征在于,所述方法还包括:
若已发布组件需要更新,从所述组件仓库中获取所述已发布组件;所述已发布组件的格式为未压缩处理的文件夹;
响应于所述已发布组件的修改指令,对所述已发布组件的源码进行修改,得到更新后的组件源码。
5.根据权利要求4所述的组件发布方法,其特征在于,在得到更新后的组件源码之后,所述方法还包括:
获取更新后的组件的新组件依赖关系;
将所述新组件依赖关系写入所述已发布组件的目标描述文件,得到新待发布组件;
重新发布所述新待发布组件至所述组件仓库。
6.根据权利要求1至5任一项所述的组件发布方法,其特征在于,所述获取所述项目开发文件夹的组件依赖关系,包括:
读取所述项目开发文件夹的依赖组件的文件字符串;
从项目根目录下的项目配置文件中,根据所述依赖组件的文件字符串获取所述依赖组件的版本号;
根据所述依赖组件的文件字符串和所述依赖组件的版本号,确定所述组件依赖关系。
7.一种组件发布装置,其特征在于,包括:
关系获取模块,被配置为执行若所述当前文件夹为组件文件夹,则获取所述项目开发文件夹的组件依赖关系,将所述组件依赖关系写入初始描述文件,得到目标描述文件;所述项目开发文件夹包括未压缩处理的组件源码,所述初始描述文件用于记录所述组件文件夹所依赖的组件的信息;
组件生成模块,被配置为执行将所述目标描述文件与所述未压缩处理的组件源码进行合并,生成未压缩的待发布组件;
组件发布模块,被配置为执行发布所述待发布组件至组件仓库。
8.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至6中任一项所述的组件发布方法。
9.一种计算机可读存储介质,其特征在于,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如权利要求1至6中任一项所述的组件发布方法。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的组件发布方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110528229.2A CN113238795A (zh) | 2021-05-14 | 2021-05-14 | 组件发布方法、装置、电子设备、存储介质及程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110528229.2A CN113238795A (zh) | 2021-05-14 | 2021-05-14 | 组件发布方法、装置、电子设备、存储介质及程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113238795A true CN113238795A (zh) | 2021-08-10 |
Family
ID=77134338
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110528229.2A Pending CN113238795A (zh) | 2021-05-14 | 2021-05-14 | 组件发布方法、装置、电子设备、存储介质及程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113238795A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114153480A (zh) * | 2021-12-06 | 2022-03-08 | 北京金堤科技有限公司 | 代码同步、组件发布方法及其装置、计算机存储介质 |
CN115291940A (zh) * | 2022-08-31 | 2022-11-04 | 前锦网络信息技术(上海)有限公司 | App发版处理方法、装置、开发处理系统及存储介质 |
CN115357272A (zh) * | 2022-10-09 | 2022-11-18 | 深圳华锐分布式技术股份有限公司 | 前端公共组件发布方法、装置、设备及介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090094572A1 (en) * | 2007-10-09 | 2009-04-09 | Microsoft Corporation | Artifact sharing from a development environment |
US20180081661A1 (en) * | 2016-09-16 | 2018-03-22 | Microsoft Technology Licensing, Llc | Optimization for Multi-Project Package Manager |
US20180196665A1 (en) * | 2017-01-09 | 2018-07-12 | Alibaba Group Holding Limited | Managing, using, and updating application resources |
CN108363564A (zh) * | 2018-01-23 | 2018-08-03 | 平安普惠企业管理有限公司 | 多项目组件化实现方法、装置、终端设备及存储介质 |
CN109146251A (zh) * | 2018-07-24 | 2019-01-04 | 武汉空心科技有限公司 | 基于组件的开发方法和系统 |
CN110489108A (zh) * | 2018-07-24 | 2019-11-22 | 厦门白山耘科技有限公司 | 一种自动收集可重用组件的方法及装置 |
CN111159108A (zh) * | 2019-12-18 | 2020-05-15 | 北京达佳互联信息技术有限公司 | 一种组件管理方法、装置、电子设备及存储介质 |
CN111740948A (zh) * | 2020-05-12 | 2020-10-02 | 北京沃东天骏信息技术有限公司 | 数据包发布方法、动态更新方法、装置、设备及介质 |
-
2021
- 2021-05-14 CN CN202110528229.2A patent/CN113238795A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090094572A1 (en) * | 2007-10-09 | 2009-04-09 | Microsoft Corporation | Artifact sharing from a development environment |
US20180081661A1 (en) * | 2016-09-16 | 2018-03-22 | Microsoft Technology Licensing, Llc | Optimization for Multi-Project Package Manager |
US20180196665A1 (en) * | 2017-01-09 | 2018-07-12 | Alibaba Group Holding Limited | Managing, using, and updating application resources |
CN108363564A (zh) * | 2018-01-23 | 2018-08-03 | 平安普惠企业管理有限公司 | 多项目组件化实现方法、装置、终端设备及存储介质 |
CN109146251A (zh) * | 2018-07-24 | 2019-01-04 | 武汉空心科技有限公司 | 基于组件的开发方法和系统 |
CN110489108A (zh) * | 2018-07-24 | 2019-11-22 | 厦门白山耘科技有限公司 | 一种自动收集可重用组件的方法及装置 |
CN111159108A (zh) * | 2019-12-18 | 2020-05-15 | 北京达佳互联信息技术有限公司 | 一种组件管理方法、装置、电子设备及存储介质 |
CN111740948A (zh) * | 2020-05-12 | 2020-10-02 | 北京沃东天骏信息技术有限公司 | 数据包发布方法、动态更新方法、装置、设备及介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114153480A (zh) * | 2021-12-06 | 2022-03-08 | 北京金堤科技有限公司 | 代码同步、组件发布方法及其装置、计算机存储介质 |
CN115291940A (zh) * | 2022-08-31 | 2022-11-04 | 前锦网络信息技术(上海)有限公司 | App发版处理方法、装置、开发处理系统及存储介质 |
CN115291940B (zh) * | 2022-08-31 | 2023-07-25 | 前锦网络信息技术(上海)有限公司 | App发版处理方法、装置、开发处理系统及存储介质 |
CN115357272A (zh) * | 2022-10-09 | 2022-11-18 | 深圳华锐分布式技术股份有限公司 | 前端公共组件发布方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113238795A (zh) | 组件发布方法、装置、电子设备、存储介质及程序产品 | |
US8245185B2 (en) | System and method for software delivery | |
CN109739600B (zh) | 数据处理方法、介质、装置和计算设备 | |
US8266588B2 (en) | Creating projects in a rational application developer workspace | |
CA2716770C (en) | Application services source refactoring | |
CN103324505B (zh) | 在集群系统和云计算系统中部署gpu开发环境的方法 | |
CN110321131B (zh) | 业务组件打包方法、系统及服务器 | |
CN112764753A (zh) | 一种项目的部署方法、装置、电子设备及存储介质 | |
CN113778445A (zh) | 一种跨平台组件生成方法、装置、电子设备及存储介质 | |
CN115185550A (zh) | 服务部署方法、装置、计算机设备及存储介质 | |
CN112835587B (zh) | 一种编译集成方法及装置 | |
KR101798705B1 (ko) | 유연성을 갖춘 메타데이터 구성 기법 | |
CN110806891B (zh) | 嵌入式设备软件版本的生成方法及装置 | |
CN112818176A (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN112711427A (zh) | 一种镜像文件的获取方法以及装置 | |
CN109582347B (zh) | 一种获取前端代码的方法及装置 | |
CN114721647B (zh) | 一种基于无代码应用开发的面向对象编程方法 | |
CN111309332A (zh) | 文件内容按需加载方法、装置及电子设备、存储介质 | |
CN116775061A (zh) | 微服务应用的部署方法、装置、设备及存储介质 | |
CN111240987A (zh) | 移植程序检测方法、装置、电子设备及计算机可读存储介质 | |
CN112825033A (zh) | 界面代码的生成方法、装置、设备及存储介质 | |
CN116069366A (zh) | 客户端应用程序更新方法及装置、存储介质及电子设备 | |
CN115220873A (zh) | 一种在Android系统中运行Open Harmony应用的方法 | |
CN114860202A (zh) | 项目运行方法、装置、服务器及存储介质 | |
CN114174983B (zh) | 用于高级构造的优化的自动验证的方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |