CN114675875A - 一种共享组件发布方法、装置、设备及介质 - Google Patents

一种共享组件发布方法、装置、设备及介质 Download PDF

Info

Publication number
CN114675875A
CN114675875A CN202210319353.2A CN202210319353A CN114675875A CN 114675875 A CN114675875 A CN 114675875A CN 202210319353 A CN202210319353 A CN 202210319353A CN 114675875 A CN114675875 A CN 114675875A
Authority
CN
China
Prior art keywords
component
folder
published
issued
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
Application number
CN202210319353.2A
Other languages
English (en)
Inventor
张翔
叶展旺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhongan Information Technology Service Co Ltd
Original Assignee
Zhongan Information Technology Service Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhongan Information Technology Service Co Ltd filed Critical Zhongan Information Technology Service Co Ltd
Priority to CN202210319353.2A priority Critical patent/CN114675875A/zh
Publication of CN114675875A publication Critical patent/CN114675875A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/116Details of conversion of file system types or formats
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/119Details of migration of file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例公开了一种共享组件发布方法、装置、设备及介质。该方法应用于客户端,该方法包括:根据对应待发布组件的组件发布指令初始化组件文件夹;将所述待发布组件迁移到所述组件文件夹;在所述组件文件夹中配置所述待发布组件的依赖项;发布所述组件文件夹到远程组件仓库。本发明实施例,通过将待发布组件迁移到组件文件夹,在组件文件夹中配置待发布组件的依赖项,发布组件文件夹到远程组件仓库,减少组件开发分享成本以及组件功能的学习成本,实现了快速共享组件代码,提升了前端开发人员的工作效率。

Description

一种共享组件发布方法、装置、设备及介质
技术领域
本发明涉及网页前端开发领域,尤其涉及一种共享组件发布方法、装置、设备及介质。
背景技术
随着数字化转型的战略规划确定,各个企业对于企业创业的业务转型诉求变得更加急迫和重要,对于中后台应用的研发效率提出了更高的要求,当前在网页前端开发领域,依赖人力为主的研发模式在交付效率方面产生了一定的瓶颈,现有技术中,对于共享组件构建需要特定组织或个人独立维护组件库代码,在规模化交付领域,这种方式使得前端开发人员的工作效率低下,增加了组件开发分享成本以及组件功能的学习成本,并且高度依赖组织,不支持组件的灵活协作,同时还可能造成组件库的高耦合和重复造轮子问题。
公开内容
有鉴于此,本发明提供一种共享组件发布方法、装置、设备及介质,能够实现快速共享组件代码,提升前端开发人员的工作效率。
根据本发明的一方面,本发明实施例提供了一种共享组件发布方法,该方法包括:
根据对应待发布组件的组件发布指令初始化组件文件夹;
将所述待发布组件迁移到所述组件文件夹;
在所述组件文件夹中配置所述待发布组件的依赖项;
发布所述组件文件夹到远程组件仓库。
根据本发明的另一方面,本发明实施例还提供了一种共享组件发布装置,应用于客户端,该装置包括:
初始化模块,用于根据对应待发布组件的组件发布指令初始化组件文件夹;
文件夹迁移模块,用于将所述待发布组件迁移到所述组件文件夹;
依赖项配置模块,用于在所述组件文件夹中配置所述待发布组件的依赖项;
发布模块,用于发布所述组件文件夹到远程组件仓库。
根据本发明的另一方面,本发明实施例还提供了一种电子设备,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的共享组件发布方法。
根据本发明的另一方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的共享组件发布方法。
本发明实施例的技术方案,根据对应待发布组件的组件发布指令初始化组件文件夹;将待发布组件迁移到组件文件夹;在组件文件夹中配置待发布组件的依赖项;发布组件文件夹到远程组件仓库。本发明实施例,通过将待发布组件迁移到组件文件夹,在组件文件夹中配置待发布组件的依赖项,发布组件文件夹到远程组件仓库,减少组件开发分享成本以及组件功能的学习成本,实现了快速共享组件代码,提升了前端开发人员的工作效率。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一提供的一种共享组件发布方法的流程图;
图2为本发明实施例二提供的一种共享组件发布方法的流程图;
图3为本发明实施例三提供的一种共享组件发布方法的流程图;
图4为本发明实施例四提供的一种共享组件发布方法的流程图;
图5是本发明实施例五提供的一种共享组件发布装置的结构框图;
图6示出了可以用来实施本发明的实施例的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例一
在一实施例中,图1为本发明实施例一提供的一种共享组件发布方法的流程图,本实施例可适用于对共享组件进行发布时的情况,该方法可以由共享组件发布装置来执行,该共享组件发布装置可以采用硬件和/或软件的形式实现,该共享组件发布装置可配置于电子设备中。如图1所示,该方法包括:
S110、根据对应待发布组件的组件发布指令初始化组件文件夹。
其中,待发布组件可以理解为需要发布的组件。示例性的,待发布组件可以为编辑类组件、多媒体类组件、逻辑类组件以及玩法类组件等等。组件发布指令可以理解与待发布组件相对应的发布指令。需要说明的是,不同类型的组件发布指令可以对应相同的触发准则,也可以对应不同的触发准则。当然,组件发布指令可以通过在组件中点击相关按键进行相应的组件发布时被触发,也可以通过在可视化页面添加相关组件时被触发;本实施例在此不做限制。组件文件夹可用于存放待发布组件的组件文件夹,组件文件夹中包含待发布组件的文件以及待发布组件的文件内容等。示例性的,在编辑类组件文件夹中,包含编辑类组件文件的文件名、目录名以及源代码,在每个文件下,均包含有该文件的相关文件内容。
在本实施例中,在获取到待发布组件的发布指令时,需要依据对应的待发布组件的组件发布指令,以初始化组件文件夹。其中,初始化组件文件夹可以为在组件文件夹生成必要的配置文件,也可以为在组件文件夹安装必备的组件发布工具,本实施例在此不做限制。
在本实施例中,在项目文件夹下,执行组件发布指令时,需要与远程组件仓库进行账户登陆验证,在账户验证通过后,开始初始化待发布文件夹,以生成相关配置文件以及安装相应的组件发布工具。当然,在初始化组件文件夹之后,可以清空待发布组件中文件的无用内容,只保留有用的文件内容。需要说明的是,进行账户登陆验证时,可以通过工具提供的登录命令,建立当前设备和发布后端的验证关系并在本地长期保存用户标记信息完成登录绑定。
在一实施例中,初始化组件文件夹至少包括:创建组件文件夹,并在组件文件夹生成配置文件以及安装组件发布工具。
其中,配置文件可以为设置需要发布的组件归属相关文件,也可以为待发布组件自身需要发布的目录文件等,本实施例在此不做限制。组件发布工具可以理解为在操作系统,例如可以是macOS或windows系统,所需在运行环境中已安装用于发布的工具。示例性的,组件发布工具可以为在运行环境中已安装node.js及npm工具,也可以为组件发布所依赖的相关开源工具,例如可以为开源工具umi/father,也可以为开源工具storybook。
在本实施例中,初始化组件文件夹至少包括,创建组件文件夹,并在组件文件夹生成待发布组件所需的配置文件,以及在组件文件夹中安装组件发布所需的组件发布工具。
S120、将待发布组件迁移到组件文件夹。
在本实施例中,可以将待发布组件迁移至初始化之时所创建的同名组件文件夹中。具体的,可以将需要发布的组件文件夹内所有文件以及所有引用文件迁移至组件文件夹的待发布目录中,并对待发布组件的路径进行相应的更改。其中,组件文件夹中包含待发布组件的文件以及待发布组件的文件内容等。
S130、在组件文件夹中配置待发布组件的依赖项。
其中,依赖项可以理解为待发布组件所对应的依赖。待发布组件的依赖项可以为本地文件引用,也可以为第三方依赖,本实施例在此不做限制。
在本实施例中,可以在组件文件夹中对待发布组件的依赖项进行相应的配置,当然,在不同的依赖项下,所做的相关操作是不同的。示例性的,当配置的待发布组件的依赖项为第三方依赖时,可以按照第三方依赖的相关文件名,在项目文件夹的根目录下查找第三方配置文件,并将第三方配置文件中依赖关系和版本号写入所述配置文件中;当配置的待发布组件的依赖项为为本地文件引用时,可以按照本地文件引用的文件名,在项目文件夹中获取引用文件内容,然后将迁移引用文件内容至组件文件夹中。
S140、发布组件文件夹到远程组件仓库。
其中,远程组件仓库可以理解为存放编译后的组件文件夹的相关文件内容的组件仓库。需要说明的是,如果是新运行环境下,远程组件仓库是空的,在通过代码推送之后,也可以理解为组件文件夹发布之后,组件仓库中才会有内容。
在本实施例中,远程组件仓库可以为私有源库,例如可以是npm源进行远程托管组件仓库,也可以为第三方库源,本实施例在次不做限制。需要说明的是,在将组件文件夹发布到远程组件仓库的同时,可以对待发布组件内的源代码进行解析,并将解析后所缓存的数据保存至客户端的后台工具作为可视化展示的基础数据。
在本实施例中,对组件文件夹的依赖项进行相应的配置之后,可以将组件文件夹发布至私有源库,并将解析后源代码的相关数据进行在后台进行相应的保存。具体的,可以依据迁移并配置依赖项的待发布组件进行相应的格式转换,采用相应的开源工具进行编译,以生成共享组件代码组成相应的代码说明文档,保存说明文档到待发布目录进行相应的组件文件夹的发布。
本发明实施例的技术方案,根据对应待发布组件的组件发布指令初始化组件文件夹;将待发布组件迁移到组件文件夹;在组件文件夹中配置待发布组件的依赖项;发布组件文件夹到远程组件仓库。本发明实施例,通过将待发布组件迁移到组件文件夹,在组件文件夹中配置待发布组件的依赖项,发布组件文件夹到远程组件仓库,能够支持灵活协作的自由组合机制,减少组件开发分享成本以及组件功能的学习成本,实现了快速共享组件代码,提升了前端开发人员的工作效率。
实施例二
在一实施例中,图2为本发明实施例二提供的一种共享组件发布方法的流程图,本实施例在上述各实施例地基础上,进行了进一步的细化,如图2所示,本实施例中的共享组件发布方法具体可以包含如下步骤:
S210、根据对应待发布组件的组件发布指令初始化组件文件夹。
S220、判断远程组件仓库中是否存在与待发布组件相一致的源代码,若是,则执行S230;若否,则执行S240。
其中,源代码可以理解为进行文件迁移之前,待发布组件对应的源代码。
在本实施例中,由于远程组件仓库可能会存在与待发布组件所同名组件的最新版本源代码,故在初始化组件文件夹之后,需要判断远程组件仓库内是否已存在与待发布组件相一致的最新版本源代码,若存在与待发布组件相一致的最新版本源代码,则待发布组件无需重复发布;若不存在与待发布组件相一致的最新版本源代码,则待发布组件验证通过。
需要说明的是,由于组件文件夹在最终发布时会将待发布组件的源代码进行格式转换,例如可以是转为base64格式,以发布到远程组件仓库,故在判断远程组件仓库内是否已存在与待发布组件相一致的最新版本源代码时,需要发布组件文件夹的源代码先转成base64格式,然后将其与可能已经存在的同名组件的最新版本源代码作对比,比较的是两者文件内容的base64格式是否一致。示例性的,可以根据所设置的待发布组件的名称,在远程组件仓库内查找是否存在同名组件,并验证待发布组件的文件内容是否与已存在的最新版本内容是否一致。
S230、待发布组件无需重复发布。
在本实施例中,远程组件仓库内若已存在与待发布组件相一致的最新版本源代码,则待发布组件无需重复发布
S240、待发布组件验证通过。
在本实施例中,远程组件仓库内若不存在与待发布组件相一致的最新版本源代码,则待发布组件验证通过。
S250、将待发布组件迁移到组件文件夹。
在本实施例中,在远程组件仓库内若不存在与待发布组件相一致的最新版本源代码时,待发布组件验证通过,可以将待发布组件迁移到组件文件夹。
S260、提取待发布组件中源代码的依赖项。
在本实施例中,待发布组件中的依赖项可以为本地文件引用,也可以为第三方依赖。在配置待发布组件的依赖项之前,可以提取待发布组件中源代码的依赖项,进行相应的分析,并根据分析结果判断在配置文件夹的引用路径以及文件夹之间的相对路径上查找确认引用的依赖项是否真是存在。
S270、在组件文件夹中引用路径存在相对应的依赖项时,验证通过。
其中,引用路径可以为配置文件夹的路径,也可以为文件夹与文件夹之间的相对路径。
在本实施例中,需要确认本地文件引用、第三方依赖是否真实存在,在组件文件夹中引用路径存在相对应的依赖项时,验证通过。示例性的,如果是本地文件引用,可以根据引用的相对路径查找是否真实存在相对应的本地引用文件,如果是第三方依赖,可以在远程仓库中进行查找是否真是存在相对应的第三方依赖,本实施例在此不做限制。
S280、在组件文件夹中配置待发布组件的依赖项。
S290、发布组件文件夹到远程组件仓库。
本发明实施例的上述技术方案,根据对应待发布组件的组件发布指令初始化组件文件夹,判断远程组件仓库中是否存在与待发布组件相一致的源代码,在不存在与待发布组件相一致的源代码的情况下,待发布组件验证通过,将待发布组件迁移到组件文件夹,提取待发布组件中源代码的依赖项,在组件文件夹中引用路径存在相对应的依赖项时,验证通过,在组件文件夹中配置待发布组件的依赖项,发布组件文件夹到远程组件仓库。本发明实施例,通过判断远程组件仓库中是否存在与待发布组件相一致的源代码,在不存在与待发布组件相一致的源代码的情况下,待发布组件验证通过,避免了重复发布共享组件;通过提取待发布组件中源代码的依赖项,在组件文件夹中引用路径存在相对应的依赖项时验证通过,从而提升了组件发布的准确率。
实施例三
在一实施例中,图3为本发明实施例三提供的一种共享组件发布方法的流程图,本实施例在上述各实施例地基础上,对将待发布组件迁移到组件文件夹、在组件文件夹中配置待发布组件的依赖项以及发布组件文件夹到远程组件仓库,进行了进一步的细化,如图3所示,本实施例中的共享组件发布方法具体可以包含如下步骤:
S310、根据对应待发布组件的组件发布指令初始化组件文件夹。
S320、将待发布组件拷贝到组件文件夹的待发布目录中。
其中,待发布目录可以理解为组件文件夹中已经创建的同名组件文件夹的待发布目录。
在本实施例中,读取待发布组件的文件内容,将待发布组件的文件内容拷贝到组件文件夹的待发布目录中。
S330、将待发布目录中待发布组件的原始路径替换为待发布目录的相对路径。
其中,原始路径可以理解为待发布组件所对应的未进行组件拷贝时的路径。相对路径可以理解为组件文件夹中待发布目录的所在的路径引起的待发布组件中的文件或文件夹的路径关系。
在本实施例中,将需要发布的组件文件夹内的所有文件以及所有引用文件迁移至待发布目录,并将待发布目录中待发布组件的原始引用路径替换为迁移后待发布目录的相对路径。
S340、在依赖项为第三方依赖的情况下,按照第三方依赖的第一文件名,在项目文件夹的根目录下查找第三方配置文件,并将第三方配置文件中依赖关系和版本号写入配置文件中。
其中,第三方依赖可以理解为引用第三方的依赖,示例性的,引用代码为第三方的依赖。第一文件名可以理解为第三方依赖的文件名,可以包含文件字符串内容、引用库的库名、引用路径的字符串内容以及文件名的字符串内容等。根目录指的是逻辑驱动器的最上一级目录,是相对于子目录而言的目录。第三方配置文件可以理解为第三方的组件归属相关文件或目录文件等。版本号可以理解为第三方的版本标识号,每一个操作系统都有一个版本号。版本号可以使用户了解所使用的操作系统是否为最新的版本以及它所提供的功能与设施。
在本实施例中,在依赖项为第三方依赖的情况下,可以按照第三方依赖的第一文件名,例如可以是引用路径的字符串内容,在项目文件夹的根目录下查找第三方配置文件,并将第三方配置文件中依赖关系以及版本号写入配置文件中。
S350、在依赖项为本地文件引用的情况下,按照本地文件引用的第二文件名,在项目文件夹中获取引用文件内容,并迁移引用文件内容至组件文件夹中。
其中,本地文件引用指的是前端组件代码中文件与文件之间的引用依赖。示例性的,A文件引用了B文件的一部分功能,可以理解为本地文件引用的情况。第二文件名可以理解为本地文件引用的文件名,可以包含引用库的库名、引用路径的字符串内容以及文件名的字符串内容等。
在本实施例中,在依赖项为本地文件引用的情况下,可以按照本地文件引用的第二文件名,在项目文件夹中获取引用文件内容,并迁移引用文件内容至待发布组件文件夹中。
S360、将组件文件夹进行格式转换。
其中,格式转换可以理解为对迁移后的待发布组件即组件文件夹中的所有文件进行相应的格式转换,例如可以是base64格式转换。
在本实施例中,需要对组件文件夹进行格式转换,然后可以根据工具后台预设的数据模型组装出文件树及文件自身内容的数据结构并缓存,以待推送代码。可以理解为,进行组件文件夹发布时,需要把组件的源代码的内容、组件名称以及组件归属的相关信息拼装成一个完整的数据,推送至后台的接口APH。
S370、对组件文件夹进行编译生成共享组件代码,并保存在相对应的待发布目录下。
其中,共享组件代码可以理解为通过相应的开源工具进行文件编译所生成的组件代码。其中,开源工具可以为umi/father,共享组件代码可以为编译后所生成UMD模式和ES模式的代码。
在本实施例中,可以将组件文件夹,通过开源工具umi/father进行相应的编译,并生成UMD模式和ES模式的共享组件代码,分别保存相对应的待发布目录下,例如可以是/dist和/es形式的待发布目录下。
S380、生成共享组件代码的说明文档,并保存说明文档到待发布目录。
其中,说明文档可以理解为组成共享组件代码的HTML格式的文档内容。
在本实施例中,由共享组件代码可以生成相对应的说明文档,并通过开源工具,例如可以是storybook,对说明文档进行编译,生成HTML格式的文档内容并保存在待发布目录,例如可以是/docs目录下。
S390、将共享组件代码以及说明文档发布到远程组件仓库。
在本实施例中,根据开源规范,可以把共享组件代码和说明文档推送至远程组件仓库,例如可以是npm源进行远程托管,进行发布。同时,可以将待发布组件内的源代码进行解析,并把解析后所缓存的数据保存至客户端的后台工具作为可视化展示的基础数据。
本发明实施例的上述技术方案,将待发布组件拷贝到组件文件夹的待发布目录中,将待发布目录中待发布组件的原始路径替换为待发布目录的相对路径,在依赖项为第三方依赖的情况下,按照第三方依赖的第一文件名,在项目文件夹的根目录下查找第三方配置文件,并将第三方配置文件中依赖关系和版本号写入所述配置文件中,在依赖项为本地文件引用的情况下,按照本地文件引用的第二文件名,在项目文件夹中获取引用文件内容,并迁移引用文件内容至待发布组件文件夹中,将组件文件夹进行格式转换,对组件文件夹进行编译生成共享组件代码,并保存在相对应的待发布目录下,生成共享组件代码的说明文档,并保存说明文档到待发布目录,将共享组件代码以及说明文档发布到远程组件仓库。本发明实施例,通过待发布组件的迁移,以及区分配置待发布组件的依赖项为本地文件引用或第三依赖,按照不同的依赖项进行相应的对策,并对组件文件夹进行相应的编译,以生成共享组件代码以及其说明文档进行相应的发布,从而减少组件开发分享成本以及组件功能的学习成本,进一步实现了快速共享组件代码,提升了前端开发人员的工作效率。
实施例四
在一实施例中,为便于更好的理解共享组件发布方法,图4为本发明实施例四提供的一种共享组件发布方法的流程图,本实施例应用于客户端,提供给开发人员使用的终端工具,终端工具通过Node.js对源代码进行编译,生成混淆压缩后可在浏览器端使用的代码和文档文件,最终将编译前的源码和编译后的内容分别推送至工具的后端数据库和私有源库各自保存。具体的执行步骤如下:
S410、在项目文件夹下,执行发布指令。
本发明实施例可任意在Macos和Windows端(操作系统)使用,需在运行环境中确保已安装Node.js及npm工具。
S420、账户验证
在执行发布时,首先会与组件仓库进行账户验证。
S430、初始化待发布文件夹,其中,初始化待发布文件夹包括:生成必备文件以及安装必备工具。
在本实施例中,在初始化待发布文件夹之后,需要清空待发布文件夹内的无用内容,之后进行文件的迁移工作。
S440、读取所设置需要发布组件的文件内容,并将之迁移至待发布目录中,已创建的同名文件夹内。
在本实施例中,将需要发布的组件文件夹内所有文件以及所有引用文件迁移至待发布目录,并将原本的引用路径替换为迁移后的相对路径。
S450、根据所设置需要发布组件的文件名称,在组件仓库内查找是否存在同名组件,并验证当前组件内容是否与已存在的最新版本内容完全一致。
在本实施例中,根据设置需要发布的组件文件夹,解析文件夹内的源代码,并将源代码与组件仓库内已存在的同名组件的最新版本源代码是否完全一致,在源代码与组件仓库内已存在的同名组件的最新版本源代码一致的情况下,提示无需重复发布;在源代码与组件仓库内已存在的同名组件的最新版本源代码不一致的情况下,文件验证通过。
S460、分析文件内容,区分引用的依赖项是本地文件引用还是第三方依赖。
在本实施例中,在完成文件验证后,会分析代码内所有引用文件和依赖项,并根据分析结果在引用的路径上查找确认是否真实存在引用的文件和依赖项,如所有引用均存在,则验证通过。区分引用的依赖项是本地文件引用还是第三方依赖。
S470、在依赖项为第三方依赖的情况下,根据第三方依赖的字符串内容,在项目文件夹的根目录下查找第三方配置文件,获取第三方依赖的版本号,并将第三方配置文件中依赖关系和版本号写入配置文件中。
S480、在依赖项为本地文件引用的情况下,根据本地文件引用的字符串内容,在项目文件夹中通过引用路径获取引用文件内容,并迁移引用文件内容至待发布组件文件夹中。
在本实施例中,根据文件引用关系,替换待发布组件文件夹内的组件源码内的引用路径字符,将之指向待发布组件文件夹已迁移的文件。
S490、将迁移后的待发布组件进行格式转换。
在本实施例中,根据迁移后文件,将所有文件转为base64格式,根据工具后台约定的数据模型组装出文件树及文件自身内容的数据结构并缓存,以待推送代码。其中,工具后台约定的数据模型指的是前后端的交互问题,在做组件发布的时候,要把组件的源代码的内容,组件名称,组件归属的相关信息拼装成一个完整的数据,推送至后台的接口。
在本实施例中,将待发布组件文件夹内的组件源码和引用内容进行合并混淆,可以生成需要发布的组件。
S4910、构建和生成说明文档。
在本实施例中,迁移后的内容,通过开源工具umi/father进行编译。并生成UMD模式和ES模式的代码,分别保存在/dist和/es目录下。
通过开源工具storybook进行文档编译。生成HTML格式的文档内容并保存在/docs目录下。
S4920、根据开源规范,推送代码。
在本实施例中,根据开源规范,把构建后的代码和文档推送至npm源进行远程托管,把解析后缓存的数据推送至工具后台作为可视化展示的基础数据。
在本实施例中,操作如下:
a1、开发前提
在本实施例中,开发的前提是在命令行控制终端,操作系统是windows和macOS都可以,需在系统内安装好Node.js和npm工具。
a2、准备工作
1)安装本发明产物发布工具
2)通过工具提供的登录命令,建立当前设备和发布后端的验证关系并在本地长期保存用户token信息完成登录绑定
3)使用人通过工具提供的新增命令,设置需要发布的组件目录
a3、执行发布
1)根据本地用户token验证当前是否已登录。
2)根据已设置待发布组件目录,获取组件源码,分析源码内容,抓取内容中引用的文件,并将其和组件源码一同迁移至待发布目录。
3)判断待发布组件目录是否已存在文档文件,如不存在创建默认文档,并迁移至待发布木的组件源码中。
4)构建源码,生成npm包发布所需内容。
5)构建文档,生成在线文档内容。
6)发布组件npm包,源码和在线文档。
实施例四
在一实施例中,图5是本发明实施例五提供的一种共享组件发布装置的结构框图,该装置适用于共享组件进行发布时的情况,该装置可以由硬件/软件实现。可配置于电子设备中来实现本发明实施例中的一种共享组件发布方法。如图5所示,该装置包括:初始化模块510、文件夹迁移模块520、依赖项配置模块530以及发布模块540。
其中,初始化模块510,用于根据对应待发布组件的组件发布指令初始化组件文件夹;
文件夹迁移模块520,用于将所述待发布组件迁移到所述组件文件夹;
依赖项配置模块530,用于在所述组件文件夹中配置所述待发布组件的依赖项;
发布模块540,用于发布所述组件文件夹到远程组件仓库。
本发明实施例,文件夹迁移模块,通过将待发布组件迁移到组件文件夹,依赖项配置模块,在组件文件夹中配置待发布组件的依赖项,发布模块,发布组件文件夹到远程组件仓库,实现了快速共享组件代码,提升了前端开发人员的工作效率。
在一实施例中,所述初始化组件文件夹至少包括:创建所述组件文件夹,并在所述组件文件夹生成配置文件以及安装组件发布工具。
在一实施例中,所述共享组件发布装置,还包括:
在所述将所述待发布组件迁移到所述组件文件夹之前,判断所述远程组件仓库中是否存在与所述待发布组件相一致的源代码,若存在,则所述待发布组件无需重复发布,若不存在,则所述待发布组件验证通过。
在一实施例中,所述共享组件发布装置,还包括:
在所述组件文件夹中配置所述待发布组件的依赖项之前,提取所述待发布组件中源代码的引用文件和依赖项;在所述组件文件夹中引用路径存在相对应的所述依赖项时,验证通过。
在一实施例中,文件夹迁移模块520,包括:
组件拷贝单元,用于将所述待发布组件拷贝到所述组件文件夹的待发布目录中;
路径替换单元,用于将所述待发布目录中所述待发布组件的原始路径替换为所述待发布目录的相对路径。
在一实施例中,依赖项配置模块530,包括:
第三方依赖单元,用于在所述依赖项为第三方依赖的情况下,按照所述第三方依赖的第一文件名,在项目文件夹的根目录下查找第三方配置文件,并将所述第三方配置文件中依赖关系和版本号写入所述配置文件中;
本地文件引用单元,用于在所述依赖项为本地文件引用的情况下,按照所述本地文件引用的第二文件名,在项目文件夹中获取引用文件内容,并迁移所述引用文件内容至所述组件文件夹中。
在一实施例中,发布模块540,包括:
格式转换单元,用于将所述组件文件夹进行格式转换;
编译单元,用于对所述组件文件夹进行编译生成共享组件代码,并保存在相对应的待发布目录下;
文档生成单元,用于生成所述共享组件代码的说明文档,并保存所述说明文档到所述待发布目录;
发布单元,用于将所述共享组件代码以及所述说明文档发布到所述远程组件仓库。
本发明实施例所提供的共享组件发布装置可执行本发明任意实施例所提供的共享组件发布方法,具备执行方法相应的功能模块和有益效果。
在一实施例中,图6示出了可以用来实施本发明的实施例的电子设备的结构示意图。电子设备10旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图6所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(ROM)12、随机访问存储器(RAM)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(ROM)12中的计算机程序或者从存储单元18加载到随机访问存储器(RAM)13中的计算机程序,来执行各种适当的动作和处理。在RAM 13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、ROM 12以及RAM 13通过总线14彼此相连。输入/输出(I/O)接口15也连接至总线14。
电子设备10中的多个部件连接至I/O接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如共享组件发布方法。
在一些实施例中,共享组件发布方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由ROM 12和/或通信单元19而被载入和/或安装到电子设备10上。当计算机程序加载到RAM 13并由处理器11执行时,可以执行上文描述的共享组件发布方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行共享组件发布方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (10)

1.一种共享组件发布方法,其特征在于,应用于客户端,所述方法包括:
根据对应待发布组件的组件发布指令初始化组件文件夹;
将所述待发布组件迁移到所述组件文件夹;
在所述组件文件夹中配置所述待发布组件的依赖项;
发布所述组件文件夹到远程组件仓库。
2.根据权利要求1所述的方法,所述初始化组件文件夹至少包括:创建所述组件文件夹,并在所述组件文件夹生成配置文件以及安装组件发布工具。
3.根据权利要求1所述的方法,其特征在于,所述将所述待发布组件迁移到所述组件文件夹,包括:
将所述待发布组件拷贝到所述组件文件夹的待发布目录中;
将所述待发布目录中所述待发布组件的原始路径替换为所述待发布目录的相对路径。
4.根据权利要求1所述的方法,所述将所述待发布组件迁移到所述组件文件夹之前,还包括:
判断所述远程组件仓库中是否存在与所述待发布组件相一致的源代码;
若存在,则所述待发布组件无需重复发布。
若不存在,则所述待发布组件验证通过。
5.根据权利要求1所述的方法,所述在所述组件文件夹中配置所述待发布组件的依赖项之前,还包括:
提取所述待发布组件中源代码的依赖项;
在所述组件文件夹中引用路径存在相对应的所述依赖项时,验证通过。
6.根据权利要求1所述的方法,其特征在于,所述在所述组件文件夹配置所述待发布组件的依赖项,包括:
在所述依赖项为第三方依赖的情况下,按照所述第三方依赖的第一文件名,在项目文件夹的根目录下查找第三方配置文件,并将所述第三方配置文件中依赖关系和版本号写入所述配置文件中;
在所述依赖项为本地文件引用的情况下,按照所述本地文件引用的第二文件名,在项目文件夹中获取引用文件内容,并迁移所述引用文件内容至所述组件文件夹中。
7.根据权利要求1所述的方法,其特征在于,所述发布所述组件文件夹到远程组件仓库,包括:
将所述组件文件夹进行格式转换;
对所述组件文件夹进行编译生成共享组件代码,并保存在相对应的待发布目录下;
生成所述共享组件代码的说明文档,并保存所述说明文档到所述待发布目录;
将所述共享组件代码以及所述说明文档发布到所述远程组件仓库。
8.一种共享组件发布装置,其特征在于,应用于客户端,所述装置包括:
初始化模块,用于根据对应待发布组件的组件发布指令初始化组件文件夹;
文件夹迁移模块,用于将所述待发布组件迁移到所述组件文件夹;
依赖项配置模块,用于在所述组件文件夹中配置所述待发布组件的依赖项;
发布模块,用于发布所述组件文件夹到远程组件仓库。
9.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的共享组件发布方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-7中任一项所述的共享组件发布方法。
CN202210319353.2A 2022-03-29 2022-03-29 一种共享组件发布方法、装置、设备及介质 Pending CN114675875A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210319353.2A CN114675875A (zh) 2022-03-29 2022-03-29 一种共享组件发布方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210319353.2A CN114675875A (zh) 2022-03-29 2022-03-29 一种共享组件发布方法、装置、设备及介质

Publications (1)

Publication Number Publication Date
CN114675875A true CN114675875A (zh) 2022-06-28

Family

ID=82076341

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210319353.2A Pending CN114675875A (zh) 2022-03-29 2022-03-29 一种共享组件发布方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN114675875A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115357272A (zh) * 2022-10-09 2022-11-18 深圳华锐分布式技术股份有限公司 前端公共组件发布方法、装置、设备及介质
CN117112498A (zh) * 2023-10-25 2023-11-24 中国电子科技集团公司第十五研究所 应用迁移方法、装置、电子设备和存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115357272A (zh) * 2022-10-09 2022-11-18 深圳华锐分布式技术股份有限公司 前端公共组件发布方法、装置、设备及介质
CN117112498A (zh) * 2023-10-25 2023-11-24 中国电子科技集团公司第十五研究所 应用迁移方法、装置、电子设备和存储介质
CN117112498B (zh) * 2023-10-25 2024-01-23 中国电子科技集团公司第十五研究所 应用迁移方法、装置、电子设备和存储介质

Similar Documents

Publication Publication Date Title
JP7019589B2 (ja) リアルタイムデータフロープログラミングのための効率的な状態機械
CN106156186B (zh) 一种数据模型管理装置、服务器及数据处理方法
US8671222B2 (en) Systems and methods for dynamically deploying an application transformation tool over a network
CN106293675B (zh) 系统静态资源加载方法及装置
US11481200B1 (en) Checking source code validity at time of code update
US9189563B2 (en) Inheritance of rules across hierarchical levels
CN114675875A (zh) 一种共享组件发布方法、装置、设备及介质
Verdickt et al. Automatic inclusion of middleware performance attributes into architectural UML software models
CN112506854A (zh) 页面模板文件的存储和页面生成方法、装置、设备及介质
CN108845864B (zh) 一种基于spring框架的JVM垃圾回收方法和装置
CN112835568A (zh) 一种项目构建方法和装置
CN114546583A (zh) 容器化的计算环境
CN113377342B (zh) 一种项目构建方法、装置、电子设备及存储介质
CN109582347B (zh) 一种获取前端代码的方法及装置
US8612964B2 (en) Migrating unified modeling language models across unified modeling language profiles
CN116009847A (zh) 代码生成方法、装置、电子设备及存储介质
CN115640279A (zh) 一种数据血缘关系的构建方法和装置
US9760368B2 (en) Automatically expiring out source code comments
CN115390846A (zh) 编译构建方法、装置、电子设备和存储介质
CN111782196A (zh) 基于mvp架构的开发方法及装置
Doglio Mastering Python High Performance
US11055091B2 (en) Project adoption documentation generation using machine learning
US12008353B2 (en) Parsing tool for optimizing code for deployment on a serverless platform
US20230083849A1 (en) Parsing tool for optimizing code for deployment on a serverless platform
CN115640015A (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