WO2021184728A1 - 自动化打包构建方法、装置及计算机可读存储介质 - Google Patents

自动化打包构建方法、装置及计算机可读存储介质 Download PDF

Info

Publication number
WO2021184728A1
WO2021184728A1 PCT/CN2020/119115 CN2020119115W WO2021184728A1 WO 2021184728 A1 WO2021184728 A1 WO 2021184728A1 CN 2020119115 W CN2020119115 W CN 2020119115W WO 2021184728 A1 WO2021184728 A1 WO 2021184728A1
Authority
WO
WIPO (PCT)
Prior art keywords
project
construction
code
build
folder
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.)
Ceased
Application number
PCT/CN2020/119115
Other languages
English (en)
French (fr)
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.)
Ping An Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen 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 Ping An Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Publication of WO2021184728A1 publication Critical patent/WO2021184728A1/zh
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Definitions

  • This application provides an automated packaging and construction method for front-end projects, and the automated packaging and construction methods for front-end projects include:
  • the receiving module is used to receive the input version number
  • the step of executing the construction and packaging command of the front-end framework of the front-end project includes:
  • the specific commands for executing the npmrunbuild command to build the project vary from project to project, and the commands are configured in scripts in the package.json file under the project.
  • the step of judging whether the front-end project contains the folder of the project name further includes:
  • the method further includes: invoking the staging interface of the front-end project, and configuring the proxy and staging interfaces will forward the request proxy to the staging interface of the first machine in the pre-release environment.

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

一种前端项目的自动化打包构建方法,包括:接收输入的版本号(S101);在接收激活触发信号后激活构建工具,并根据所述输入的版本号搜索到对应所述版本号的待构建代码分支,所述构建工具中静态配置有构建代码库地址和项目名称(S102);在判断所述构建工具中的前端项目下包含有所述项目名称的文件夹后,根据所述待构建代码分支对应的构建代码库地址加载代码至所述文件夹中(S103);在所述文件夹中安装对应所述前端项目的依赖包(S104);安装完所述依赖包后构建所述前端项目以完成所述前端项目的自动化打包构建(S105)。

Description

自动化打包构建方法、装置及计算机可读存储介质
本申请要求于2020年03月17日提交中国专利局、申请号为202010189567.3,发明名称为“自动化打包构建方法、装置及计算机可读存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及计算机技术领域,尤其涉及一种前端项目的自动化打包构建方法、装置及计算机可读存储介质。
背景技术
当前,对于前端项目的打包方法主要有手动执行打包命令、通过配置Jenkins等CI构建工具等。手动执行打包命令的方法的主要步骤是:1、进入本地项目文件夹目录下,然后通过shift+右键等方式进入cmd命令窗口;2、首次构建项目的话需要先执行npminstall等命令安装相关依赖包;3、执行vue框架下的vue-cli-servicebuild、react框架下的npmrunbuild:prd、angular框架下的ngbuild等命令进行打包;4、执行tar-cfxxx.tar./xxx命令最终生成tar包。
发明人意识到,手动执行打包命令的方法对打包执行人员有比较高的技术要求,并且由于项目代码中分支众多,容易出现执行拉取打包的不是目标分支代码的情况,没办法保证稳定性。另外,Jenkins等CI构建工具通过把手动执行打包命令方式的各个步骤转化为脚本,解决了稳定性的问题,但仍然属于专业性比较强的工具,同时由于Jenkins中包含了很多项目,容易进入别的项目,找到对应的项目有一定困难。
技术解决方案
本申请提供一种前端项目的自动化打包构建方法,所述前端项目的自动化打包构建方法包括:
接收输入的版本号;
在接收激活触发信号后激活构建工具,并根据所述输入的版本号搜索到对应所述版本号的待构建代码分支,所述构建工具中静态配置有构建代码库地址和项目名称;
在判断所述构建工具中的前端项目下包含有所述项目名称的文件夹后,根据所述待构建代码分支对应的构建代码库地址加载代码至所述文件夹中;
在所述文件夹中安装对应所述前端项目的依赖包;
安装完所述依赖包后构建所述前端项目以完成所述前端项目的自动化打包构建。
本申请还提供一种电子设备,所述电子设备包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的前端项目的自动化打包构建程序,所述前端项目的自动化打包构建程序被所述处理器执行时实现如下步骤:
接收输入的版本号;
在接收激活触发信号后激活构建工具,并根据所述输入的版本号搜索到对应所述版本号的待构建代码分支,所述构建工具中静态配置有构建代码库地址和项目名称;
在判断所述构建工具中的前端项目下包含有所述项目名称的文件夹后,根据所述待构建代码分支对应的构建代码库地址加载代码至所述文件夹中;
在所述文件夹中安装对应所述前端项目的依赖包;
安装完所述依赖包后构建所述前端项目以完成所述前端项目的自动化打包构建。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有前端项目的自动化打包构建程序,所述前端项目的自动化打包构建程序可被一个或者多个处理器执行,以实现如下所述的前端项目的自动化打包构建方法的步骤:
接收输入的版本号;
在接收激活触发信号后激活构建工具,并根据所述输入的版本号搜索到对应所述版本号的待构建代码分支,所述构建工具中静态配置有构建代码库地址和项目名称;
在判断所述构建工具中的前端项目下包含有所述项目名称的文件夹后,根据所述待构建代码分支对应的构建代码库地址加载代码至所述文件夹中;
在所述文件夹中安装对应所述前端项目的依赖包;
安装完所述依赖包后构建所述前端项目以完成所述前端项目的自动化打包构建。
本申请还提供一种前端项目的自动化打包构建装置,包括:
接收模块,用于接收输入的版本号;
构建模块,用于在接收激活触发信号后激活构建工具,并根据所述输入的版本号搜索到对应所述版本号的待构建代码分支,所述构建工具中静态配置有构建代码库地址和项目名称;
加载模块,用于在判断所述构建工具中的前端项目下包含有所述项目名称的文件夹后,根据所述待构建代码分支对应的构建代码库地址加载代码至所述文件夹中;
安装模块,用于在所述文件夹中安装对应所述前端项目的依赖包;
打包模块,用于安装完所述依赖包后构建所述前端项目以完成所述前端项目的自动化打包构建。
附图说明
图1为本申请一实施例提供的前端项目的自动化打包构建方法的流程示意图;
图2为本申请一实施例提供的电子设备的内部结构示意图;
图3为本申请一实施例提供的前端项目的自动化打包构建装置的模块示意图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
本发明的实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供一种前端项目的自动化打包构建方法。参照图1所示,为本申请一实施例提供的前端项目的自动化打包构建方法的流程示意图。该方法可以由一个装置执行,该装置可以由软件和/或硬件实现,本实施例中,所述装置为智能终端。
在本实施例中,所述前端项目的自动化打包构建方法包括:
S101,接收输入的版本号;
S102,在接收激活触发信号后激活构建工具,并根据所述输入的版本号搜索到对应所述版本号的待构建代码分支,所述构建工具中静态配置有构建代码库地址和项目名称;
S103,在判断所述构建工具中的前端项目下包含有所述项目名称的文件夹后,根据所述待构建代码分支对应的构建代码库地址加载代码至所述文件夹中;
S104,在所述文件夹中安装对应所述前端项目的依赖包;
S105,安装完所述依赖包后构建所述前端项目以完成所述前端项目的自动化打包构建。
可选地,所述在判断所述前端项目下未包含有所述项目名称的文件夹后,生成具有所述项目名称的新建文件夹,根据所述待构建代码分支对应的构建代码库地址加载代码至所述新建文件夹中。
其中,git就是类似于svn的一个版本控制工具,和hg更像一些,hg也是一个分布式版本控制工具,可以说git是当前最流行也是功能最强大的开源版本控制工具。其实我们最熟悉的还是svn,有个中央仓库,大家都上去checkout代码,或者根据自己的需求建立分支,切换分支,但是这其中我们依赖最大的就是网络,如果网络挂了,我们所写的代码就不能提交到中央仓库,也就不能靠svn来管理了,可以说暂时是离线状态,而且在分支切换的时候也是一个耗时的过程。然后我们再说git,git是一个分布式的版本控制工具,没有中央仓库的概念,只要我们的pc上面安装了git,那么每个人都可以在自己电脑上创建仓库,并且供其他人员clone,clone其实就是对一个仓库的克隆,类似于svn中的checkout,但是不同之处在于clone会对仓库的所有信息进行克隆,每次clone就相当于把仓库copy了一份,是一个整体,一个完整的仓库。但是我们工作中为了代码的同步方便和代码的集中管理,我们还是需要一个中心仓库,然后大家都上去clone,后续对所有提交都push到这个中心仓库上面。git除了分布式的一大特点还有一个亮点就是分支管理,和svn的分支管理不同得失,git采用的是指针的概念,他指向的是内存区域而不是具体文件。
在本实施方式中,列举一些常用的关于git命令的使用方法供参考,具体如下:1、gitignore规则不生效;.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。解决方法就是先把本地缓存删除(改变成未track状态),然后再提交:gitrm -r–cached;gitadd .g;itcommit -m 'update .gitignore';2、git忽略某个指定的文件(不从版本库中删除),执行命令如下:gitupdate-index --assume-unchangedconfig.conf,用gitstatus查看一下,已经得到了自己想要的效果;3、git取消忽略某个指定的文件:gitupdate-index --no-assume-unchangedconfig.conf;4、将当前版本回退到上一个版本,命令如下:gitreset --hardHEAD^;5、回退到上两个版本:gitreset– hardHEAD^^;6、回退到指定版本:gitlog //显示从最近到最远的提交日志;gitreset --hardcommit_id //回退到指定版本;7、查看命令历史:gitreflog;8、拉取暂存区文件并将其替换成工作区文件:gitcheckout-- <file>;9、跟踪取消,即把文件从git中拿出来,不再进行版本跟踪,但保留工作区的文件:gitrm - - cachedfilename;10、查看工作区和版本库里面最新版本的区别:gitdiffHEAD– readme.txt;gitdiff命令比较的是工作目录中当前文件与暂存区快照之间的差异,也就是修改之后还没有暂存起来的变化内容;11、将工作去的内容放入版本库的暂存区:gitaddreadme.txt;12、将暂存区的内容提交到当前分支:gitcommit -m "gittrackschanges";13、显示工作目录和暂存区的状态:gitstatus;14、删除一个文件:gitrmtest.txt;15、从远程库克隆项目:gitclone项目地址;16、创建分支,然后切换到分支:gitcheckout -bdev;gitcheckout命令加上-b参数表示创建并切换,相当于以下两条命令:gitbranchdev;gitcheckoutdev;17、查看当前分支:gitbranch;gitbranch命令会列出所有分支,当前分支前面会标一个*号;18、gitmerge命令用于合并指定分支到当前分支:gitmergedev;19、删除本地分支:gitbranch -ddev;20、删除远程dev分支:gitpushorigin :dev;21、切换分支:gitcheckout <name>;22、查看远程库的信息:gitremote或 gitremote–v;23、推送分支,就是把该分支上的所有本地提交推送到远程库。推送时,要指定本地分支,这样,Git就会把该分支推送到远程库对应的远程分支上:gitpushoriginmaster;如果要推送其他分支,比如dev,就改成:gitpushorigindev;24、拉取分支:gitpull。
可选地,所述所述安装对应所述前端项目的依赖包的步骤包括:
如果安装对应的依赖包的过程中出错,则提示错误信息,并停止运行;
如果安装对应的依赖包成功,则进入下一步。
其中,npm是一个工具,一个包管理工具;maven是java界的一个包管理工具;而这个npm则是javascript界的一个包管理工具。
maven有一仓库来存储所有的java的模块(包),npm也有相应的仓库来存储所有的javascript的模块(包)。maven有各种命令来操作模块(包),npm也有相应的命令来操作模块(包)。
所述执行所述前端项目的前端框架的构建打包命令的步骤包括:
执行npmrunbuild命令进行项目构建;
构建过程中如果出错则提示错误信息,并停止进行;
构建完成后,执行tar -cfxxx.tar ./xxx命令生成tar包。
其中,执行npmrunbuild命令进行项目构建的具体命令因项目而异,命令都在项目下的package.json文件中的scripts中进行配置。
可选地,所述构建工具中已静态配置有构建代码库地址codeUrl和项目名称projectName,所述输入的版本号为version,点击构建按钮之后,所述构建工具会被激活;所述构建工具被激活后会根据一定规则由所述输入的版本号version生成待构建代码分支branch。
可选地,所述判断前端项目下是否包含有所述项目名称的文件夹的步骤还包括:
调用所述前端项目下的production接口,判断输入的版本号是否和系统中配置的一致;
判断当前时间是否在所述前端项目下中配置的发版时间窗口中。
所述方法还包括:调用所述前端项目的staging接口,配置proxy、staging接口中会把请求代理转发到预发布环境第一台机器的staging接口。
在本实施例中,整个执行过程中任一流程中如果出现错误,都会停止执行,不会进行下一步。本构建打包方法并会把相关的详细错误信息抛出展示在可视化的界面上,相关技术支持人员可以根据错误信息很明确的判断出错误所在的步骤以及错误原因,来采取相关的技术手段解决问题。
本申请提出了一种针对性的可视自动化的前端项目构建打包方案,首先把打包过程中的打包流程进行规范和明确,把各个打包构建命令转化为自动化脚本,保证了打包的稳定性,避免了手动的误操作;其次本构建打包方案只针对单个项目,与其它项目没有任何关联,不会出现误操作其他项目的情况;再次本构建打包方案把专业化的操作都封装在黑盒中,对外仅仅暴露项目版本这一个参数,基本上项目中任何角色的人员执行打包都不会有任何困难;最后大型项目的整个打包流程耗时比较长,通过使用本构建打包方案的话,只需要点击构建的按钮然后等待它自动打包完成即可,而无需等待它每个过程的执行完成。
本申请还提供一种电子设备1。参照图2所示,为本申请一实施例提供的电子设备的内部结构示意图。
在本实施例中,电子设备1可以是电脑、智能终端或服务器。所述电子设备1至少包括存储器11、处理器13,通信总线15,以及网络接口17。在本实施例中,所述电子设备1为智能终端。
其中,存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器11在一些实施例中可以是电子设备的内部存储单元,例如所述电子设备的硬盘。存储器11在另一些实施例中也可以是电子设备的外部存储设备,例如电子设备上配备的插接式硬盘,智能存储卡(SmartMediaCard, SMC),安全数字(SecureDigital, SD)卡,闪存卡(FlashCard)等。进一步地,存储器11还可以既包括电子设备的内部存储单元也包括外部存储设备。存储器11不仅可以用于存储安装于电子设备1的应用软件及各类数据,例如活体检测程序111的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
处理器13在一些实施例中可以是一中央处理器(CentralProcessingUnit, CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据。
通信总线15用于实现这些组件之间的连接通信。
网络接口17可选的可以包括标准的有线接口、无线接口(如WI-FI接口),通常用于在电子设备1与其他电子设备之间建立通信连接。
可选地,电子设备1还可以包括用户接口,用户接口可以包括显示器(Display)、输入单元比如键盘(Keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(OrganicLight-EmittingDiode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备中处理的信息以及用于显示可视化的用户界面。
图2仅示出了具有组件11~17的电子设备1,本领域技术人员可以理解的是,图2示出的结构并不构成对电子设备的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
在图2所示的电子设备1的实施例中,存储器11中存储有前端项目的自动化打包构建程序111;处理器13执行存储器11中存储的前端项目的自动化打包构建程序111时实现如下步骤:
接收输入的版本号;
在接收激活触发信号后激活构建工具,并根据所述输入的版本号搜索到对应所述版本号的待构建代码分支,所述构建工具中静态配置有构建代码库地址和项目名称;
在判断所述构建工具中的前端项目下包含有所述项目名称的文件夹后,根据所述待构建代码分支对应的构建代码库地址加载代码至所述文件夹中;
在所述文件夹中安装对应所述前端项目的依赖包;
安装完所述依赖包后构建所述前端项目以完成所述前端项目的自动化打包构建。
可选地,所述在判断所述前端项目下未包含有所述项目名称的文件夹后,生成具有所述项目名称的新建文件夹,根据所述待构建代码分支对应的构建代码库地址加载代码至所述新建文件夹中。
其中,git就是类似于svn的一个版本控制工具,和hg更像一些,hg也是一个分布式版本控制工具,可以说git是当前最流行也是功能最强大的开源版本控制工具。其实我们最熟悉的还是svn,有个中央仓库,大家都上去checkout代码,或者根据自己的需求建立分支,切换分支,但是这其中我们依赖最大的就是网络,如果网络挂了,我们所写的代码就不能提交到中央仓库,也就不能靠svn来管理了,可以说暂时是离线状态,而且在分支切换的时候也是一个耗时的过程。然后我们再说git,git是一个分布式的版本控制工具,没有中央仓库的概念,只要我们的pc上面安装了git,那么每个人都可以在自己电脑上创建仓库,并且供其他人员clone,clone其实就是对一个仓库的克隆,类似于svn中的checkout,但是不同之处在于clone会对仓库的所有信息进行克隆,每次clone就相当于把仓库copy了一份,是一个整体,一个完整的仓库。但是我们工作中为了代码的同步方便和代码的集中管理,我们还是需要一个中心仓库,然后大家都上去clone,后续对所有提交都push到这个中心仓库上面。git除了分布式的一大特点还有一个亮点就是分支管理,和svn的分支管理不同得失,git采用的是指针的概念,他指向的是内存区域而不是具体文件。
在本实施方式中,列举一些常用的关于git命令的使用方法供参考,具体如下:1、gitignore规则不生效;.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。解决方法就是先把本地缓存删除(改变成未track状态),然后再提交:gitrm -r–cached;gitadd .g;itcommit -m 'update .gitignore';2、git忽略某个指定的文件(不从版本库中删除),执行命令如下:gitupdate-index --assume-unchangedconfig.conf,用gitstatus查看一下,已经得到了自己想要的效果;3、git取消忽略某个指定的文件:gitupdate-index --no-assume-unchangedconfig.conf;4、将当前版本回退到上一个版本,命令如下:gitreset --hardHEAD^;5、回退到上两个版本:gitreset– hardHEAD^^;6、回退到指定版本:gitlog //显示从最近到最远的提交日志;gitreset --hardcommit_id //回退到指定版本;7、查看命令历史:gitreflog;8、拉取暂存区文件并将其替换成工作区文件:gitcheckout-- <file>;9、跟踪取消,即把文件从git中拿出来,不再进行版本跟踪,但保留工作区的文件:gitrm - - cachedfilename;10、查看工作区和版本库里面最新版本的区别:gitdiffHEAD– readme.txt;gitdiff命令比较的是工作目录中当前文件与暂存区快照之间的差异,也就是修改之后还没有暂存起来的变化内容;11、将工作去的内容放入版本库的暂存区:gitaddreadme.txt;12、将暂存区的内容提交到当前分支:gitcommit -m "gittrackschanges";13、显示工作目录和暂存区的状态:gitstatus;14、删除一个文件:gitrmtest.txt;15、从远程库克隆项目:gitclone项目地址;16、创建分支,然后切换到分支:gitcheckout -bdev;gitcheckout命令加上-b参数表示创建并切换,相当于以下两条命令:gitbranchdev;gitcheckoutdev;17、查看当前分支:gitbranch;gitbranch命令会列出所有分支,当前分支前面会标一个*号;18、gitmerge命令用于合并指定分支到当前分支:gitmergedev;19、删除本地分支:gitbranch -ddev;20、删除远程dev分支:gitpushorigin :dev;21、切换分支:gitcheckout <name>;22、查看远程库的信息:gitremote或 gitremote–v;23、推送分支,就是把该分支上的所有本地提交推送到远程库。推送时,要指定本地分支,这样,Git就会把该分支推送到远程库对应的远程分支上:gitpushoriginmaster;如果要推送其他分支,比如dev,就改成:gitpushorigindev;24、拉取分支:gitpull。
可选地,所述所述安装对应所述前端项目的依赖包的步骤包括:
如果安装对应的依赖包的过程中出错,则提示错误信息,并停止运行;
如果安装对应的依赖包成功,则进入下一步。
其中,npm是一个工具,一个包管理工具;maven是java界的一个包管理工具;而这个npm则是javascript界的一个包管理工具。
maven有一仓库来存储所有的java的模块(包),npm也有相应的仓库来存储所有的javascript的模块(包)。maven有各种命令来操作模块(包),npm也有相应的命令来操作模块(包)。
所述执行所述前端项目的前端框架的构建打包命令的步骤包括:
执行npmrunbuild命令进行项目构建;
构建过程中如果出错则提示错误信息,并停止进行;
构建完成后,执行tar -cfxxx.tar ./xxx命令生成tar包。
其中,执行npmrunbuild命令进行项目构建的具体命令因项目而异,命令都在项目下的package.json文件中的scripts中进行配置。
可选地,所述构建工具中已静态配置有构建代码库地址codeUrl和项目名称projectName,所述输入的版本号为version,点击构建按钮之后,所述构建工具会被激活;所述构建工具被激活后会根据一定规则由所述输入的版本号version生成待构建代码分支branch。
可选地,所述判断前端项目下是否包含有所述项目名称的文件夹的步骤还包括:
调用所述前端项目下的production接口,判断输入的版本号是否和系统中配置的一致;
判断当前时间是否在所述前端项目下中配置的发版时间窗口中。
所述方法还包括:调用所述前端项目的staging接口,配置proxy、staging接口中会把请求代理转发到预发布环境第一台机器的staging接口。
在本实施例中,整个执行过程中任一流程中如果出现错误,都会停止执行,不会进行下一步。本构建打包方法并会把相关的详细错误信息抛出展示在可视化的界面上,相关技术支持人员可以根据错误信息很明确的判断出错误所在的步骤以及错误原因,来采取相关的技术手段解决问题。
本申请提出了一种电子设备,首先把打包过程中的打包流程进行规范和明确,把各个打包构建命令转化为自动化脚本,保证了打包的稳定性,避免了手动的误操作;其次本构建打包方案只针对单个项目,与其它项目没有任何关联,不会出现误操作其他项目的情况;再次本构建打包方案把专业化的操作都封装在黑盒中,对外仅仅暴露项目版本这一个参数,基本上项目中任何角色的人员执行打包都不会有任何困难;最后大型项目的整个打包流程耗时比较长,通过使用本构建打包方案的话,只需要点击构建的按钮然后等待它自动打包完成即可,而无需等待它每个过程的执行完成。
此外,本申请实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有前端项目的自动化打包构建程序111,所述前端项目的自动化打包构建程序111可被一个或多个处理器执行,以实现如下操作:
接收输入的版本号;
在接收激活触发信号后激活构建工具,并根据所述输入的版本号搜索到对应所述版本号的待构建代码分支,所述构建工具中静态配置有构建代码库地址和项目名称;
在判断所述构建工具中的前端项目下包含有所述项目名称的文件夹后,根据所述待构建代码分支对应的构建代码库地址加载代码至所述文件夹中;
在所述文件夹中安装对应所述前端项目的依赖包;
安装完所述依赖包后构建所述前端项目以完成所述前端项目的自动化打包构建。
所述计算机可读存储介质可以是非易失性,也可以是易失性。
本申请计算机可读存储介质具体实施方式与上述电子设备和方法各实施例基本相同,在此不作累述。
可选地,在其他实施例中,所述前端项目的自动化打包构建程序111还可以被分割为一个或者多个模块,一个或者多个模块被存储于存储器11中,并由一个或多个处理器(本实施例为处理器13)所执行以完成本申请,本申请所称的模块是指能够完成特定功能的一系列计算机程序指令段,用于描述前端项目的自动化打包构建程序在电子设备中的执行过程。
例如,参照图3所示,为本申请电子设备一实施例中的前端项目的自动化打包构建装置的程序模块示意图,该实施例中,前端项目的自动化打包构建装置可以被分割为接收模块10、构建模块20、加载模块30、安装模块40、打包模块50,示例性地:
所述接收模块10,用于接收输入的版本号;
所述构建模块20,用于在接收激活触发信号后激活构建工具,并根据所述输入的版本号搜索到对应所述版本号的待构建代码分支,所述构建工具中静态配置有构建代码库地址和项目名称;
所述加载模块30,用于在判断所述构建工具中的前端项目下包含有所述项目名称的文件夹后,根据所述待构建代码分支对应的构建代码库地址加载代码至所述文件夹中;
所述安装模块40,用于在所述文件夹中安装对应所述前端项目的依赖包;
所述打包模块50,用于安装完所述依赖包后构建所述前端项目以完成所述前端项目的自动化打包构建。
所述接收模块10、构建模块20、加载模块30、安装模块40、打包模块50等程序模块被执行时所实现的功能或操作步骤与上述实施例大体相同,在此不再赘述。
需要说明的是,上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。并且本文中的术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (20)

  1. 一种前端项目的自动化打包构建方法,其中,所述前端项目的自动化打包构建方法包括:
    接收输入的版本号;
    在接收激活触发信号后激活构建工具,并根据所述输入的版本号搜索到对应所述版本号的待构建代码分支,所述构建工具中静态配置有构建代码库地址和项目名称;
    在判断所述构建工具中的前端项目下包含有所述项目名称的文件夹后,根据所述待构建代码分支对应的构建代码库地址加载代码至所述文件夹中;
    在所述文件夹中安装对应所述前端项目的依赖包;
    安装完所述依赖包后构建所述前端项目以完成所述前端项目的自动化打包构建。
  2. 如权利要求1所述的前端项目的自动化打包构建方法,其中,所述在判断所述前端项目下未包含有所述项目名称的文件夹后,生成具有所述项目名称的新建文件夹,根据所述待构建代码分支对应的构建代码库地址加载代码至所述新建文件夹中。
  3. 如权利要求1所述的前端项目的自动化打包构建方法,其中,所述安装对应所述前端项目的依赖包的步骤包括:
    如果安装对应的依赖包的过程中出错,则提示错误信息,并停止运行;
    如果安装对应的依赖包成功,则进入下一步。
  4. 如权利要求3所述的前端项目的自动化打包构建方法,其中,所述构建工具中已静态配置有构建代码库地址codeUrl和项目名称projectName,所述输入的版本号为version,点击构建按钮之后,所述构建工具会被激活;所述构建工具被激活后会根据一定规则由所述输入的版本号version生成待构建代码分支branch。
  5. 如权利要求4所述的前端项目的自动化打包构建方法,其中,所述判断前端项目下是否包含有所述项目名称的文件夹的步骤还包括:
    调用所述前端项目下的production接口,判断输入的版本号是否和系统中配置的一致;
    判断当前时间是否在所述前端项目下中配置的发版时间窗口中。
  6. 如权利要求1所述的前端项目的自动化打包构建方法,其中,所述构建所述前端项目以完成所述前端项目的自动化打包构建的步骤包括:
    执行npmrunbuild命令进行项目构建;
    构建过程中如果出错则提示错误信息,并停止进行;
    构建完成后,执行tar -cfxxx.tar ./xxx命令生成tar包。
  7. 一种电子设备,其中,所述电子设备包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的前端项目的自动化打包构建程序,所述前端项目的自动化打包构建程序被所述处理器执行时实现如下步骤:
    接收输入的版本号;
    在接收激活触发信号后激活构建工具,并根据所述输入的版本号搜索到对应所述版本号的待构建代码分支,所述构建工具中静态配置有构建代码库地址和项目名称;
    在判断所述构建工具中的前端项目下包含有所述项目名称的文件夹后,根据所述待构建代码分支对应的构建代码库地址加载代码至所述文件夹中;
    在所述文件夹中安装对应所述前端项目的依赖包;
    安装完所述依赖包后构建所述前端项目以完成所述前端项目的自动化打包构建。
  8. 如权利要求7所述的电子设备,其中,所述在判断所述前端项目下未包含有所述项目名称的文件夹后,生成具有所述项目名称的新建文件夹,根据所述待构建代码分支对应的构建代码库地址加载代码至所述新建文件夹中。
  9. 如权利要求7所述的电子设备,其中,所述安装对应所述前端项目的依赖包的步骤包括:
    如果安装对应的依赖包的过程中出错,则提示错误信息,并停止运行;
    如果安装对应的依赖包成功,则进入下一步。
  10. 如权利要求9所述的电子设备,其中,所述构建工具中已静态配置有构建代码库地址codeUrl和项目名称projectName,所述输入的版本号为version,点击构建按钮之后,所述构建工具会被激活;所述构建工具被激活后会根据一定规则由所述输入的版本号version生成待构建代码分支branch。
  11. 如权利要求10所述的电子设备,其中,所述判断前端项目下是否包含有所述项目名称的文件夹的步骤还包括:
    调用所述前端项目下的production接口,判断输入的版本号是否和系统中配置的一致;
    判断当前时间是否在所述前端项目下中配置的发版时间窗口中。
  12. 如权利要求7所述的电子设备,其中,所述构建所述前端项目以完成所述前端项目的自动化打包构建的步骤包括:
    执行npmrunbuild命令进行项目构建;
    构建过程中如果出错则提示错误信息,并停止进行;
    构建完成后,执行tar -cfxxx.tar ./xxx命令生成tar包。
  13. 一种计算机可读存储介质,其中,所述计算机可读存储介质上存储有前端项目的自动化打包构建程序,所述前端项目的自动化打包构建程序可被一个或者多个处理器执行,以实现如下所述的前端项目的自动化打包构建方法的步骤:
    接收输入的版本号;
    在接收激活触发信号后激活构建工具,并根据所述输入的版本号搜索到对应所述版本号的待构建代码分支,所述构建工具中静态配置有构建代码库地址和项目名称;
    在判断所述构建工具中的前端项目下包含有所述项目名称的文件夹后,根据所述待构建代码分支对应的构建代码库地址加载代码至所述文件夹中;
    在所述文件夹中安装对应所述前端项目的依赖包;
    安装完所述依赖包后构建所述前端项目以完成所述前端项目的自动化打包构建。
  14. 如权利要求13所述的计算机可读存储介质,其中,所述在判断所述前端项目下未包含有所述项目名称的文件夹后,生成具有所述项目名称的新建文件夹,根据所述待构建代码分支对应的构建代码库地址加载代码至所述新建文件夹中。
  15. 如权利要求13所述的计算机可读存储介质,其中,所述安装对应所述前端项目的依赖包的步骤包括:
    如果安装对应的依赖包的过程中出错,则提示错误信息,并停止运行;
    如果安装对应的依赖包成功,则进入下一步。
  16. 如权利要求15所述的计算机可读存储介质,其中,所述构建工具中已静态配置有构建代码库地址codeUrl和项目名称projectName,所述输入的版本号为version,点击构建按钮之后,所述构建工具会被激活;所述构建工具被激活后会根据一定规则由所述输入的版本号version生成待构建代码分支branch。
  17. 如权利要求16所述的计算机可读存储介质,其中,所述判断前端项目下是否包含有所述项目名称的文件夹的步骤还包括:
    调用所述前端项目下的production接口,判断输入的版本号是否和系统中配置的一致;
    判断当前时间是否在所述前端项目下中配置的发版时间窗口中。
  18. 如权利要求13所述的计算机可读存储介质,其中,所述构建所述前端项目以完成所述前端项目的自动化打包构建的步骤包括:
    执行npmrunbuild命令进行项目构建;
    构建过程中如果出错则提示错误信息,并停止进行;
    构建完成后,执行tar -cfxxx.tar ./xxx命令生成tar包。
  19. 一种前端项目的自动化打包构建装置,其中,所述前端项目的自动化打包构建装置包括:
    接收模块,用于接收输入的版本号;
    构建模块,用于在接收激活触发信号后激活构建工具,并根据所述输入的版本号搜索到对应所述版本号的待构建代码分支,所述构建工具中静态配置有构建代码库地址和项目名称;
    加载模块,用于在判断所述构建工具中的前端项目下包含有所述项目名称的文件夹后,根据所述待构建代码分支对应的构建代码库地址加载代码至所述文件夹中;
    安装模块,用于在所述文件夹中安装对应所述前端项目的依赖包;
    打包模块,用于安装完所述依赖包后构建所述前端项目以完成所述前端项目的自动化打包构建。
  20. 如权利要求19所述的前端项目的自动化打包构建装置,其中,所述构建工具中已静态配置有构建代码库地址codeUrl和项目名称projectName,所述输入的版本号为version,点击构建按钮之后,所述构建工具会被激活;所述构建工具被激活后会根据一定规则由所述输入的版本号version生成待构建代码分支branch。
PCT/CN2020/119115 2020-03-17 2020-09-29 自动化打包构建方法、装置及计算机可读存储介质 Ceased WO2021184728A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010189567.3 2020-03-17
CN202010189567.3A CN111475173A (zh) 2020-03-17 2020-03-17 自动化打包构建方法、装置及计算机可读存储介质

Publications (1)

Publication Number Publication Date
WO2021184728A1 true WO2021184728A1 (zh) 2021-09-23

Family

ID=71747520

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/119115 Ceased WO2021184728A1 (zh) 2020-03-17 2020-09-29 自动化打包构建方法、装置及计算机可读存储介质

Country Status (2)

Country Link
CN (1) CN111475173A (zh)
WO (1) WO2021184728A1 (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114035836A (zh) * 2021-11-04 2022-02-11 北京尚医智信健康管理有限公司 微服务应用镜像编排方法和装置
CN114201174A (zh) * 2021-11-26 2022-03-18 上海瑞家信息技术有限公司 混合移动应用的构建方法、装置、电子设备及存储介质
CN114237688A (zh) * 2021-12-06 2022-03-25 网易(杭州)网络有限公司 分支版本合并方法、装置、系统及电子设备
CN114327596A (zh) * 2021-12-29 2022-04-12 北京百度网讯科技有限公司 组件发布方法和产品发布方法
CN114489617A (zh) * 2022-01-10 2022-05-13 招商银行股份有限公司 分支策略生成方法、装置、终端设备及存储介质
CN114489764A (zh) * 2021-12-22 2022-05-13 北京百度网讯科技有限公司 数据处理方法、装置、电子设备及存储介质
CN115016836A (zh) * 2022-06-10 2022-09-06 北京自如信息科技有限公司 组件版本管理方法、装置、电子设备及系统
CN115145599A (zh) * 2022-06-27 2022-10-04 山东新一代信息产业技术研究院有限公司 一种增量升级包的构建方法、系统及存储介质
CN115185487A (zh) * 2022-01-27 2022-10-14 浙江浩瀚能源科技有限公司 客户端组件化项目的持续集成方法、系统、设备及介质
CN115202635A (zh) * 2022-06-28 2022-10-18 浪潮云信息技术股份公司 一种基于Node.js的多项目构建方法
CN115480739A (zh) * 2022-09-21 2022-12-16 平安银行股份有限公司 一种项目构建方法、装置、电子设备及存储介质
CN116028108A (zh) * 2023-03-31 2023-04-28 深圳复临科技有限公司 一种依赖包安装用时分析方法、装置、设备及存储介质
CN116820445A (zh) * 2022-03-21 2023-09-29 京东科技控股股份有限公司 一种基于VS Code的前端项目部署方法和装置
CN119376747A (zh) * 2024-12-31 2025-01-28 中国四维测绘技术有限公司 一种npm包离线部署方法、装置和电子设备

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111475173A (zh) * 2020-03-17 2020-07-31 平安科技(深圳)有限公司 自动化打包构建方法、装置及计算机可读存储介质
CN114764334A (zh) * 2021-01-13 2022-07-19 北京鸿享技术服务有限公司 软件打包方法、设备、存储介质及装置
CN115248700B (zh) * 2021-04-25 2025-04-11 远光软件股份有限公司 一种产品代码自动化构建移动安装包的方法和系统
CN113190268B (zh) * 2021-05-28 2022-09-23 宝宝巴士股份有限公司 一种前端源项目的打包方法
CN113408260A (zh) * 2021-07-12 2021-09-17 网易(杭州)网络有限公司 一种项目工程生成方法、装置、计算机设备及存储介质
CN116009947A (zh) * 2023-01-30 2023-04-25 掌阅科技股份有限公司 快应用构建方法、服务端、界面端及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120036049A1 (en) * 2005-09-29 2012-02-09 Eric Gerzymisch System and method for software integration and factory deployment
CN102566986A (zh) * 2010-12-10 2012-07-11 上海晨兴希姆通电子科技有限公司 Td无线固话软件版本管理系统及其应用方法
CN110362316A (zh) * 2019-07-23 2019-10-22 北京首汽智行科技有限公司 一种源代码管理方法
CN111475173A (zh) * 2020-03-17 2020-07-31 平安科技(深圳)有限公司 自动化打包构建方法、装置及计算机可读存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106326100A (zh) * 2015-06-30 2017-01-11 中兴通讯股份有限公司 一种软件自动化测试方法及装置
CN110018857B (zh) * 2018-01-05 2022-08-16 武汉斗鱼网络科技有限公司 应用组件化中分支自动管理方法、存储介质、设备及方法
CN110795139A (zh) * 2019-09-12 2020-02-14 深圳壹账通智能科技有限公司 客户端批量打包方法、装置、计算机设备和存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120036049A1 (en) * 2005-09-29 2012-02-09 Eric Gerzymisch System and method for software integration and factory deployment
CN102566986A (zh) * 2010-12-10 2012-07-11 上海晨兴希姆通电子科技有限公司 Td无线固话软件版本管理系统及其应用方法
CN110362316A (zh) * 2019-07-23 2019-10-22 北京首汽智行科技有限公司 一种源代码管理方法
CN111475173A (zh) * 2020-03-17 2020-07-31 平安科技(深圳)有限公司 自动化打包构建方法、装置及计算机可读存储介质

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114035836A (zh) * 2021-11-04 2022-02-11 北京尚医智信健康管理有限公司 微服务应用镜像编排方法和装置
CN114201174A (zh) * 2021-11-26 2022-03-18 上海瑞家信息技术有限公司 混合移动应用的构建方法、装置、电子设备及存储介质
CN114237688A (zh) * 2021-12-06 2022-03-25 网易(杭州)网络有限公司 分支版本合并方法、装置、系统及电子设备
CN114489764A (zh) * 2021-12-22 2022-05-13 北京百度网讯科技有限公司 数据处理方法、装置、电子设备及存储介质
CN114327596A (zh) * 2021-12-29 2022-04-12 北京百度网讯科技有限公司 组件发布方法和产品发布方法
CN114489617A (zh) * 2022-01-10 2022-05-13 招商银行股份有限公司 分支策略生成方法、装置、终端设备及存储介质
CN115185487A (zh) * 2022-01-27 2022-10-14 浙江浩瀚能源科技有限公司 客户端组件化项目的持续集成方法、系统、设备及介质
CN116820445A (zh) * 2022-03-21 2023-09-29 京东科技控股股份有限公司 一种基于VS Code的前端项目部署方法和装置
CN115016836A (zh) * 2022-06-10 2022-09-06 北京自如信息科技有限公司 组件版本管理方法、装置、电子设备及系统
CN115145599A (zh) * 2022-06-27 2022-10-04 山东新一代信息产业技术研究院有限公司 一种增量升级包的构建方法、系统及存储介质
CN115202635A (zh) * 2022-06-28 2022-10-18 浪潮云信息技术股份公司 一种基于Node.js的多项目构建方法
CN115480739A (zh) * 2022-09-21 2022-12-16 平安银行股份有限公司 一种项目构建方法、装置、电子设备及存储介质
CN116028108A (zh) * 2023-03-31 2023-04-28 深圳复临科技有限公司 一种依赖包安装用时分析方法、装置、设备及存储介质
CN119376747A (zh) * 2024-12-31 2025-01-28 中国四维测绘技术有限公司 一种npm包离线部署方法、装置和电子设备

Also Published As

Publication number Publication date
CN111475173A (zh) 2020-07-31

Similar Documents

Publication Publication Date Title
WO2021184728A1 (zh) 自动化打包构建方法、装置及计算机可读存储介质
US12061884B2 (en) Extensible data transformation authoring and validation system
EP3377968B1 (en) Dynamic update of an application in compilation and deployment
CN107992308B (zh) 一种安卓终端应用程序的插件化管理方法
CN1153138C (zh) 提高Java环境的可管理性和可用性的系统和方法
US12229189B2 (en) Continuous builds of derived datasets in response to other dataset updates
Cinar Android apps with Eclipse
WO2017087801A1 (en) Dynamic update of an application in compilation and deployment
CN111857765B (zh) 用于药物设计系统的插件系统及其生成方法和更新方法
CN112130888B (zh) 应用程序更新的方法、装置、设备和计算机存储介质
US10896109B2 (en) Non-monotonic eventual convergence for desired state configuration
CN118672644A (zh) 一种国产操作系统环境下动态库兼容方法及装置
CN113220279A (zh) 一种代码索引管理方法、装置、设备及介质
CN108471433B (zh) 一种配置化的同步消息验证接收方法、系统及存储介质
CN107168719A (zh) 应用程序运行方法、装置、终端及计算机可读存储介质
CN115269442B (zh) 一种基于图形接口架构和管理项目的调试方法及工具
CN118672625A (zh) 一种支持Lua脚本动态热更新的方法及终端
CN115202701A (zh) 一种生成补丁的方法、系统、设备和存储介质
CN113590996A (zh) 一种埋点数据生成方法、装置、设备及存储介质
Chen et al. RCHDroid: Transparent Runtime Change Handling for Android Apps
CN112416468A (zh) 一种flutter私有化插件管理系统、方法及计算机存储介质
KR102883166B1 (ko) 코드 정보 제공을 위한 전자 장치 및 그 방법
KR20070096316A (ko) 무선 센서 네트워크 환경에서 프로그램을 변경하기 위한확장 가능한 가상 머신 및 이를 이용한 리프로그래밍 방법
CN120216018A (zh) 多版本数据库驱动程序的兼容方法、装置、介质和设备
CN121957615A (zh) 嵌入式sdk的自动化构建发布方法、装置、设备及介质

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20925397

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20925397

Country of ref document: EP

Kind code of ref document: A1