CN111522577A - 一种依赖包版本管理方法、装置、设备和存储介质 - Google Patents

一种依赖包版本管理方法、装置、设备和存储介质 Download PDF

Info

Publication number
CN111522577A
CN111522577A CN202010287482.9A CN202010287482A CN111522577A CN 111522577 A CN111522577 A CN 111522577A CN 202010287482 A CN202010287482 A CN 202010287482A CN 111522577 A CN111522577 A CN 111522577A
Authority
CN
China
Prior art keywords
version information
package
target project
control end
dependent
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
CN202010287482.9A
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.)
JD Digital Technology Holdings Co Ltd
Original Assignee
JD Digital Technology Holdings 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 JD Digital Technology Holdings Co Ltd filed Critical JD Digital Technology Holdings Co Ltd
Priority to CN202010287482.9A priority Critical patent/CN111522577A/zh
Publication of CN111522577A publication Critical patent/CN111522577A/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种依赖包版本管理方法、装置、设备和存储介质。该方法包括:确定目标项目对应的开发端依赖包版本信息;向预设的控制端发送目标项目对应的依赖包版本请求信息,并接收控制端返回的目标项目对应的控制端依赖包版本信息;根据控制端依赖包版本信息,校验开发端依赖包版本信息;其中,如果开发端依赖包版本信息和控制端依赖包版本信息相同,则运行目标项目;反之,则先根据控制端依赖包版本信息,在开发端更新目标项目对应的依赖包的版本,再运行目标项目。本发明使得开发端安装的依赖包和目标项目最新引用的依赖包版本一致,确保目标项目不会出现功能性差异问题。

Description

一种依赖包版本管理方法、装置、设备和存储介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种依赖包版本管理方法、装置、设备和存储介质。
背景技术
随着计算机技术的快速发展,软件开发项目的数量越来越多并且规模越来越大。由于前端项目的多样性以及复杂性,使得前端项目与前端项目之间,前端项目和底层数据库之间存在依赖关系,导致前端项目在开发过程中需要引用依赖包(Node Mode)才能正常运行。依赖包是开发者之间可以共享使用的计算机指令的集合,其包含了系统对外的接口定义,各种常量和变量定义,以及各种公共方法的声明。
由于前端项目引用依赖包的情况较多而且繁杂,所以为了保证前端项目在开发过程中的安全性和可靠性,需要对前端项目引用的依赖包版本进行管理,使前端项目在不同终端引用相同版本的依赖包,避免因为同一前端项目在开发环境和生产环境安装的依赖包版本不同或者不同开发者为同一前端项目安装不同版本的依赖包,导致的前端项目出现功能性差异的问题。
目前,前端项目对依赖包版本的管理主要是通过NPM(Node Package Manager,Node包管理器)来实现,NPM主要用于安装和卸载依赖包,在通过NPM为前端项目安装依赖包时会为该前端项目对应生成package.json文件,该package.json文件用于描述前端项目所用到的依赖包及其版本号。
但是,在实现本发明过程中发明人发现,由于NPM是在各个开发端分别使用的,所以经常会出现开发端安装的依赖包和前端项目最新引用的依赖包存在版本差异的问题。具体而言,由于开发者在各自的开发端可以通过NPM更新前端项目的依赖包,导致同一项目的不同开发者之间只能掌握各自更新的依赖包版本号,而无法察觉其他开发者更新的依赖包版本号,使得依赖包的引用在整个开发过程中变得不可控,常常会因为本开发端安装的依赖包版本和该前端项目在前一开发端引用的依赖包版本不同,导致前端项目出现功能差异问题,即便得知了这种异常是由于本开发端安装的依赖包版本和前端项目最新引用的依赖包版本不同造成的,也无法做到快速升级依赖包的版本。
发明内容
本发明实施例的主要目的在于提供一种依赖包版本管理方法、装置、设备和存储介质,以解决现有技术中开发端安装的依赖包和前端项目最新引用的依赖包存在版本差异的问题。
针对上述技术问题,本发明实施例是通过以下技术方案来解决的:
本发明实施例提供了一种依赖包版本管理方法,在开发端执行,包括:确定目标项目对应的开发端依赖包版本信息;向预设的控制端发送所述目标项目对应的依赖包版本请求信息,并接收所述控制端返回的所述目标项目对应的控制端依赖包版本信息;所述控制端依赖包版本信息是所述目标项目在所述控制端对应的最新更新的依赖包的版本信息;根据所述控制端依赖包版本信息,校验所述开发端依赖包版本信息;其中,如果所述开发端依赖包版本信息和所述控制端依赖包版本信息相同,则运行所述目标项目;反之,则先根据所述控制端依赖包版本信息,在所述开发端更新所述目标项目对应的依赖包的版本,再运行所述目标项目。
其中,所述确定所述目标项目对应的开发端依赖包版本信息,包括:在所述目标项目中启动预设的脚手架工具;通过所述脚手架工具初始化所述目标项目,并确定所述目标项目对应的开发端依赖包版本信息。
其中,在所述确定目标项目对应的开发端依赖包版本信息之前,所述方法还包括:启动预设的脚手架工具并通过所述脚手架工具创建所述目标项目,或者,创建所述目标项目并在创建的所述目标项目中启动所述脚手架工具;通过所述脚手架工具生成所述目标项目对应开发端依赖包版本信息;将所述目标项目对应的开发端依赖包版本信息发送给所述控制端,使所述控制端根据所述目标项目对应的开发端依赖包版本信息创建所述目标项目对应的控制端依赖包版本信息。
其中,在运行所述目标项目的过程中,或者,停止运行所述目标项目之后,所述方法还包括:在所述开发端更新所述目标项目对应的依赖包;根据更新的所述依赖包对应的版本信息,生成所述目标项目对应的开发端依赖包版本信息;将所述目标项目对应的开发端依赖包版本信息发送给所述控制端,使所述控制端根据所述目标项目对应的开发端依赖包版本信息更新所述目标项目对应的控制端依赖包版本信息。
本发明实施例还提供了一种依赖包版本管理方法,在控制端执行,包括:接收开发端发送的目标项目对应的依赖包版本请求信息;根据所述目标项目对应的依赖包版本请求信息,查询所述目标项目对应的控制端依赖包版本信息;所述控制端依赖包版本信息是所述目标项目在所述控制端对应的最新的依赖包的版本信息;将所述目标项目对应的控制端依赖包版本信息发送给所述开发端,以便所述开发端根据所述控制端依赖包版本信息校验所述目标项目在所述开发端对应的开发端依赖包版本信息。
其中,所述方法还包括:接收所述开发端发送的所述目标项目对应的开发端依赖包版本信息;查询所述控制端是否存在所述目标项目对应的控制端依赖包版本信息;如果所述控制端存在所述目标项目对应的控制端依赖包版本信息,则根据所述目标项目对应的开发端依赖包版本信息更新所述目标项目对应的控制端依赖包版本信息;如果所述控制端不存在所述目标项目对应的控制端依赖包版本信息,则根据所述目标项目对应的开发端依赖包版本信息创建所述目标项目对应的控制端依赖包版本信息。
其中,所述方法还包括:根据目标项目对应的待更新依赖包的版本信息,更新所述目标项目对应的控制端依赖包版本信息,以使所述开发端根据更新后的所述控制端依赖包信息,在所述开发端更新所述待更新依赖包。
本发明实施例还提供了一种依赖包版本管理装置,被设置在开发端,包括:确定模块,用于确定目标项目对应的开发端依赖包版本信息;交互模块,用于向预设的控制端发送所述目标项目对应的依赖包版本请求信息,并接收所述控制端返回的所述目标项目对应的控制端依赖包版本信息;所述控制端依赖包版本信息是所述目标项目在所述控制端对应的最新更新的依赖包的版本信息;校验模块,用于根据所述控制端依赖包版本信息,校验所述开发端依赖包版本信息;其中,如果所述开发端依赖包版本信息和所述控制端依赖包版本信息相同,则运行所述目标项目;反之,则先根据所述控制端依赖包版本信息,在所述开发端更新所述目标项目对应的依赖包的版本,再运行所述目标项目。
本发明实施例还提供了一种依赖包版本管理装置,被设置在控制端,包括:接收模块,用于接收开发端发送的目标项目对应的依赖包版本请求信息;查询模块,用于根据所述目标项目对应的依赖包版本请求信息,查询所述目标项目对应的控制端依赖包版本信息;所述控制端依赖包版本信息是所述目标项目在所述控制端对应的最新的依赖包的版本信息;发送模块,用于将所述目标项目对应的控制端依赖包版本信息发送给所述开发端,以便所述开发端根据所述控制端依赖包版本信息校验所述目标项目在所述开发端对应的开发端依赖包版本信息。
本发明实施例还提供了一种依赖包版本管理设备,所述依赖包版本管理设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述任一项所述的在开发端执行的依赖包版本管理方法或者实现上述任一项所述的在控制端执行的依赖包版本管理方法。
本发明实施例还提供了一种存储介质,所述存储介质上存储有依赖包版本管理程序,所述依赖包版本管理程序被处理器执行时实现上述任一项所述的在开发端执行的依赖包版本管理方法或者实现上述任一项所述的在控制端执行的依赖包版本管理方法。
本发明实施例的有益效果如下:
本发明利用控制端存储的控制端依赖包版本信息校验开发端依赖包版本信息,用以确定目标项目在开发端引用的依赖包是否为最新更新的依赖包,如果目标项目在开发端引用的依赖包不是最新更新的依赖包,则根据控制端依赖包版本信息在开发端更新目标项目引用的依赖包,使得开发端安装的依赖包和目标项目最新引用的依赖包版本一致,确保目标项目不会出现功能性差异问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明一实施例的在开发端执行的依赖包版本管理方法的流程图;
图2是根据本发明一实施例的在控制端执行的依赖包版本管理方法的流程图;
图3是根据本发明一实施例的被设置在开发端的依赖包版本管理装置的结构图;
图4是根据本发明一实施例的被设置在控制端的依赖包版本管理装置的结构图;
图5是根据本发明一实施例的依赖包版本管理设备的结构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,以下结合附图及具体实施例,对本发明作进一步地详细说明。
根据本发明的实施例,提供了一种在开发端执行的依赖包版本管理方法。如图1所示,是根据本发明一实施例的在开发端执行的依赖包版本管理方法的流程图。
步骤S110,确定目标项目对应的开发端依赖包版本信息。
目标项目是指在开发端待开发的项目。
开发端是指目标项目所在的硬件环境。
开发端依赖包版本信息,是指在开发端为目标项目安装的依赖包对应的版本号。依赖包的数量为一个或者多个。开发端依赖包版本信息,包括但不限于:各个依赖包的依赖包名称和依赖包版本号。
在本实施例中,可以在初始化目标项目时,确定所述目标项目对应的开发端依赖包版本信息。当然,也可以选择在其他便于对开发端的依赖包版本进行校验、更新的时机,确定目标项目对应的开发端依赖包版本信息。
下面给出两种确定开发端依赖包版本信息的方式,但是本领域技术人员应当知道的是,以下两种确定开发端依赖包版本信息的方式仅用于描述本实施例,而不用于限定本实施例。
方式一,在目标项目中启动预设的脚手架工具;通过所述脚手架工具初始化所述目标项目,并确定所述目标项目对应的开发端依赖包版本信息。进一步地,脚手架工具可以在创建目标项目时为目标项目对应安装依赖包并生成package.json文件,并在开发端为目标项目更新依赖包版本时,更新package.json文件的内容。在确定目标项目对应的开发端依赖包版本信息时,脚手架工具可以在目标项目对应的package.json文件中读取目标项目对应的开发端依赖包版本信息;或者,脚手架工具可以检测目标项目在开发端对应的依赖包;根据目标项目在开发端对应的依赖包,生成目标项目对应的开发端依赖包版本信息。
方式二,预先通过NPM为目标项目安装依赖包,并生成目标项目对应package.json文件;以及,通过NPM为目标项目更新依赖包的版本,并对所述package.json文件进行更新。在确定目标项目对应的开发端依赖包版本信息时,获取所述目标项目对应的package.json文件;在package.json文件中,读取目标项目对应的开发端依赖包版本信息。
步骤S120,向预设的控制端发送所述目标项目对应的依赖包版本请求信息,并接收所述控制端返回的所述目标项目对应的控制端依赖包版本信息。
控制端,用于采集各个项目最新更新的依赖包的版本信息,并根据各个项目最新更新的依赖包的版本信息,更新各个项目对应的控制端依赖包版本信息。进一步地,项目最新更新的依赖包可以是稳定依赖包。稳定依赖包是指运行项目的代码时不会使项目的代码出现Bug的依赖包。
控制端依赖包版本信息,是项目在控制端对应的最新更新的稳定依赖包的版本信息。进一步地,目标项目在控制端对应的控制端依赖包版本信息是该目标项目对应的最新更新的稳定依赖包的版本信息。该目标项目对应的控制端依赖包版本信息,包括但不限于:在用于开发该目标项目的多个开发端中,为该目标项目引用的依赖包中最新更新(版本最新)的依赖包的依赖包名称和版本号。
依赖包版本请求信息,用于向控制端请求控制端依赖包版本信息。在本实施例中,在目标项目对应的依赖包版本请求信息中携带目标项目的信息,以便控制端返回的目标项目对应的控制端依赖包版本信息。目标项目的信息可以是目标项目的名称和/或编号。
步骤S130,根据所述控制端依赖包版本信息,校验所述开发端依赖包版本信息;其中,如果所述开发端依赖包版本信息和所述控制端依赖包版本信息相同,则运行所述目标项目;反之,则先根据所述控制端依赖包版本信息,在所述开发端更新所述目标项目对应的依赖包的版本,再运行所述目标项目。
在本实施例中,校验开发端依赖包版本信息用于确定在开发端为目标项目安装的依赖包的版本是否为最新更新的版本。如果开发端依赖包版本信息和控制端依赖包版本信息相同(内容相同),则表示在开发端为目标项目安装的依赖包已经更新到最新更新版本。如果开发端依赖包版本信息和控制端依赖包版本信息不同(内容不同),则表示在开发端为目标项目安装的依赖包没有更新到最新更新版本。
如果在开发端为目标项目安装的依赖包没有更新到最新更新版本,则根据控制端依赖包版本信息,在开发端更新目标项目对应的依赖包的版本,使得在开发端为目标项目安装的依赖包为最新更新版本。
在本实施例中,在初始化目标项目之前,还需要创建目标项目,以及在控制端创建目标项目对应的控制端依赖包版本信息。具体而言:启动预设的脚手架工具并通过所述脚手架工具创建所述目标项目,或者,创建所述目标项目并在创建的所述目标项目中启动所述脚手架工具;通过所述脚手架工具生成所述目标项目对应开发端依赖包版本信息;将所述目标项目对应的开发端依赖包版本信息发送给所述控制端,使所述控制端根据所述目标项目对应的开发端依赖包版本信息创建所述目标项目对应的控制端依赖包版本信息。进一步地,可以预先设置基础型依赖包以及基础性依赖包的版本号;脚手架工具根据预先设置基础型依赖包以及基础型依赖包的版本号,生成开发端依赖包版本信息。基础型依赖包为各种项目所需引用的依赖包。
在本实施例中,在运行目标项目的过程中,或者,停止运行目标项目之后,还可能涉及部分依赖包需要更新的情况,如:添加、升级和删除依赖包的情况;在更新依赖包之后,还需要更新控制端的控制端依赖包版本信息,使得控制端依赖包版本信息中的依赖包版本保持最新更新的版本号。具体而言:在所述开发端更新所述目标项目对应的依赖包;根据更新的所述依赖包对应的版本信息,生成所述目标项目对应的开发端依赖包版本信息;将所述目标项目对应的开发端依赖包版本信息发送给所述控制端,使所述控制端根据所述目标项目对应的开发端依赖包版本信息更新所述目标项目对应的控制端依赖包版本信息。进一步地,如果开发端更新的目标项目对应的依赖包不是稳定依赖包,即运行目标项目时,该依赖包使目标项目的代码出现Bug,则需要更新的依赖包的版本,得到目标项目对应的稳定依赖包;根据更新后的依赖包的版本信息生成目标项目对应的开发端依赖包版本信息,将该开发端依赖包版本信息发送给所述控制端,使所述控制端根据该开发端依赖包版本信息更新所述目标项目对应的控制端依赖包版本信息。
在本实施例中,可以预先开发脚手架工具。该脚手架工具可以使用JavaScript语言开发,并且可以运行在Node环境中。该脚手架工具至少可以执行以下操作:生成目标项目的目录结构,检测目标项目对应的依赖包的版本号,在初始化目标项目时,确定目标项目对应的开发端依赖包版本信息,向控制端发送目标项目对应的依赖包版本请求信息,接收控制端发送的目标项目对应的控制端依赖包版本信息,根据控制端依赖包版本信息,校验开发端依赖包版本信息,启动目标项目,编译构建目标项目等。进一步地,该脚手架工具可以通过预设的第一接口向控制端发送依赖包版本请求信息,通过预设的第二接口接收控制端返回的控制端依赖包版本信息。第一接口和第二接口可以是相同或者不同的接口。
在本实施例中,利用控制端存储的控制端依赖包版本信息校验开发端依赖包版本信息,用以确定目标项目在开发端引用的依赖包是否为最新更新的依赖包,如果目标项目在开发端引用的依赖包不是最新更新的依赖包,则根据控制端依赖包版本信息在开发端更新目标项目引用的依赖包,使得开发端安装的依赖包和目标项目最新引用的依赖包版本一致,确保目标项目不会出现功能性差异问题。进一步地,通过本实施例可以得到开发端依赖包版本信息和控制端依赖包版本信息之间的依赖包版本的异同之处,进而可以在开发端快速更新该异同版本的依赖包。
根据上述在开发端执行的依赖包版本管理方法,本发明的实施例,还提供了一种在控制端执行的依赖包版本管理方法。如图2所示,是根据本发明一实施例的在控制端执行的依赖包版本管理方法的流程图。
步骤S210,接收开发端发送的目标项目对应的依赖包版本请求信息。
依赖包版本请求信息,用于请求获得控制端依赖包版本信息。在本实施例中,在目标项目对应的依赖包版本请求信息中携带目标项目的信息。
步骤S220,根据所述目标项目对应的依赖包版本请求信息,查询所述目标项目对应的控制端依赖包版本信息。
控制端依赖包版本信息,是目标项目在控制端对应的最新更新的依赖包的版本信息。由于控制端可以在用于开发目标项目的各个开发端采集目标项目对应的最新更新的版本信息,所以目标项目在控制端对应的最新更新的依赖包的版本信息,即是目标项目对应的最新更新的依赖包的版本信息。
根据目标项目对应的依赖包版本请求信息中携带的目标项目的信息,查询控制端是否存储了该目标项目对应的控制端依赖包版本信息。如果存储了该目标项目对应的控制端依赖包版本信息,则将目标项目对应的控制端依赖包版本信息返回给开发端;如果未存储目标项目对应的控制端依赖包版本信息,则表示该目标项目尚未创建控制端依赖包版本信息,可以向开发端返回尚未创建控制端依赖包版本信息的提示信息。
进一步地,如果未存储该目标项目对应的控制端依赖包版本信息,则可以向开发端发送依赖包版本采集请求。开发端可以根据该依赖包版本采集请求将目标项目在开发端对应的依赖包的版本信息发送给控制端;控制端根据目标项目在开发端对应的依赖包的版本信息,创建目标项目对应的控制端依赖包版本信息。
步骤S230,将所述目标项目对应的控制端依赖包版本信息发送给所述开发端,以便所述开发端根据所述控制端依赖包版本信息校验所述目标项目在所述开发端对应的开发端依赖包版本信息。
在本实施例中,可以被动创建或者被动更新控制端依赖包版本信息,也即是,在有创建或者更新需求时,由开发端发起创建或者更新的动作。具体而言:接收所述开发端发送的所述目标项目对应的开发端依赖包版本信息;查询所述控制端是否存在所述目标项目对应的控制端依赖包版本信息;如果所述控制端存在所述目标项目对应的控制端依赖包版本信息,则根据所述目标项目对应的开发端依赖包版本信息更新所述目标项目对应的控制端依赖包版本信息;如果所述控制端不存在所述目标项目对应的控制端依赖包版本信息,则根据所述目标项目对应的开发端依赖包版本信息创建所述目标项目对应的控制端依赖包版本信息。进一步地,可以设置管理员权限,在接收所述开发端发送的所述目标项目对应的开发端依赖包版本信息之后,可以根据具有管理员权限的用户对开发端依赖包版本信息的审批结果,来最终确定是否创建或者更新控制端依赖包版本信息。
在本实施例中,可以主动更新控制端依赖包版本信息,也即是在有更新需求时,由控制端发起更新动作。例如:在发现依赖包不是稳定依赖包时,就出现了更新该依赖包版本的需求。具体而言:根据目标项目对应的待更新依赖包的版本信息,更新所述目标项目对应的控制端依赖包版本信息,以使所述开发端根据更新后的所述控制端依赖包信息,在所述开发端更新所述待更新依赖包。进一步地,接收目标项目对应的待更新依赖包的版本信息,确定上传目标项目对应的待更新依赖包的版本信息的用户是否具有管理员权限,如果具有管理员权限,则更新所述目标项目对应的控制端依赖包版本信息;反之,则拒绝更新所述目标项目对应的控制端依赖包版本信息。
本实施例在控制端保存项目对应的最新更新的依赖包的版本信息,待项目在开发端初始化时,将该项目对应的控制端依赖包版本信息提供给开发端,以便开发端根据该控制端依赖包版本信息更新开发端的依赖包版本,从而使项目在开发端的依赖包版本始终保持在最新更新的版本。
下面给出两个具体的应用场景事例,来进一步地描述本发明实施例。
应用场景1:
开发人员A和开发人员B同时开发一个pro1项目(目标项目),开发人员A临时接到其他需求,暂时停止开发pro1项目,开始开发pro2项目。在开发人员A离开的期间,开发人员B需要新增依赖mode1(依赖包)的功能,即升级mode1的版本0.0.1到0.1.1,开发人员B在开发端B更新mode1的版本之后,更新控制端存储的pro1项目对应的控制端依赖包版本信息。一段时间后,开发人员A结束pro1项目,继续开发pro1项目,此时,开发人员A在pro1项目中启动脚手架工,通过脚手架初始化pro1项目,获取pro1在开发端A的开发端依赖包版本信息,并从控制端获取pro1对应的控制端依赖包版本信息,根据控制端依赖包版本信息校验开发端依赖包版本信息,发现mode1的版本已经0.0.1更新到0.1.1,这时,在开发端A更新mode1的版本到0.1.1。
这样,通过在控制端存储项目最新更新的依赖包版本信息,可以保证多人协同开发同一个项目时,各个开发人员的本地依赖包版本一致。
应用场景2:
多个不同项目同时依赖mode2(依赖包),此时,发现mode2有bug需要紧急更新mode2并上线新版本的mode2。针对该问题,首先只需要待mode2解决bug后,在控制端升级该mode2的版本为稳定版,然后,开发人员通过脚手架工具初始化项目,从控制端获取pro1对应的控制端依赖包版本信息,根据控制端依赖包版本信息校验开发端依赖包版本信息,由于mode2已经更新了版本,所以,校验会发现控制端依赖包版本信息和开发端依赖包版本信息在mode2上存在版本差异,这时,在开发端更新mode2至最新版本即可。
这样,通过在控制端存储项目最新更新的依赖包版本信息,可以达到快速升级项目依赖包版本的效果。
本发明实施例还提供了一种被设置在开发端的依赖包版本管理装置。
如图3所示,是根据本发明一实施例的被设置在开发端的依赖包版本管理装置的结构图。
该被设置在开发端的依赖包版本管理装置,包括:确定模块310,交互模块320和校验模块330。
确定模块310,用于确定目标项目对应的开发端依赖包版本信息。
交互模块320,用于向预设的控制端发送所述目标项目对应的依赖包版本请求信息,并接收所述控制端返回的所述目标项目对应的控制端依赖包版本信息;所述控制端依赖包版本信息是所述目标项目在所述控制端对应的最新更新的依赖包的版本信息。
校验模块330,用于根据所述控制端依赖包版本信息,校验所述开发端依赖包版本信息;其中,如果所述开发端依赖包版本信息和所述控制端依赖包版本信息相同,则运行所述目标项目;反之,则先根据所述控制端依赖包版本信息,在所述开发端更新所述目标项目对应的依赖包的版本,再运行所述目标项目。
本发明实施例所述的装置的功能已经在上述在开发端执行的方法实施例中进行了描述,故本实施例的描述中未详尽之处,可以参见前述实施例中的相关说明,在此不做赘述。
本发明实施例还提供了一种被设置在控制端的依赖包版本管理装置。
如图4所示,是根据本发明一实施例的被设置在控制端的依赖包版本管理装置的结构图。
该被设置在控制端的依赖包版本管理装置,包括:接收模块410,查询模块420和发送模块430。
接收模块410,用于接收开发端发送的目标项目对应的依赖包版本请求信息。
查询模块420,用于根据所述目标项目对应的依赖包版本请求信息,查询所述目标项目对应的控制端依赖包版本信息;所述控制端依赖包版本信息是所述目标项目在所述控制端对应的最新的依赖包的版本信息。
发送模块430,用于将所述目标项目对应的控制端依赖包版本信息发送给所述开发端,以便所述开发端根据所述控制端依赖包版本信息校验所述目标项目在所述开发端对应的开发端依赖包版本信息。
本发明实施例所述的装置的功能已经在上述在控制端执行的方法实施例中进行了描述,故本实施例的描述中未详尽之处,可以参见前述实施例中的相关说明,在此不做赘述。
本实施例提供一种依赖包版本管理设备。如图5所示,为根据本发明一实施例的依赖包版本管理设备的结构图。
在本实施例中,所述依赖包版本管理设备包括但不限于:处理器510和存储器520。
所述处理器510用于执行存储器520中存储的依赖包版本管理程序,以实现上述在开发端执行的依赖包版本管理方法或者实现上述在控制端执行的依赖包版本管理方法。
具体而言,所述处理器501用于执行存储器502中存储的在开发端执行的依赖包版本管理程序,以实现以下步骤:确定目标项目对应的开发端依赖包版本信息;向预设的控制端发送所述目标项目对应的依赖包版本请求信息,并接收所述控制端返回的所述目标项目对应的控制端依赖包版本信息;所述控制端依赖包版本信息是所述目标项目在所述控制端对应的最新更新的依赖包的版本信息;根据所述控制端依赖包版本信息,校验所述开发端依赖包版本信息;其中,如果所述开发端依赖包版本信息和所述控制端依赖包版本信息相同,则运行所述目标项目;反之,则先根据所述控制端依赖包版本信息,在所述开发端更新所述目标项目对应的依赖包的版本,再运行所述目标项目。
其中,所述确定所述目标项目对应的开发端依赖包版本信息,包括:在所述目标项目中启动预设的脚手架工具;通过所述脚手架工具初始化所述目标项目,并确定所述目标项目对应的开发端依赖包版本信息。
其中,在所述确定目标项目对应的开发端依赖包版本信息之前,所述方法还包括:启动预设的脚手架工具并通过所述脚手架工具创建所述目标项目,或者,创建所述目标项目并在创建的所述目标项目中启动所述脚手架工具;通过所述脚手架工具生成所述目标项目对应开发端依赖包版本信息;将所述目标项目对应的开发端依赖包版本信息发送给所述控制端,使所述控制端根据所述目标项目对应的开发端依赖包版本信息创建所述目标项目对应的控制端依赖包版本信息。
其中,在运行所述目标项目的过程中,或者,停止运行所述目标项目之后,所述方法还包括:在所述开发端更新所述目标项目对应的依赖包;根据更新的所述依赖包对应的版本信息,生成所述目标项目对应的开发端依赖包版本信息;将所述目标项目对应的开发端依赖包版本信息发送给所述控制端,使所述控制端根据所述目标项目对应的开发端依赖包版本信息更新所述目标项目对应的控制端依赖包版本信息。
所述处理器510用于执行存储器520中存储的在控制端执行的依赖包版本管理程序,以实现以下步骤:接收开发端发送的目标项目对应的依赖包版本请求信息;根据所述目标项目对应的依赖包版本请求信息,查询所述目标项目对应的控制端依赖包版本信息;所述控制端依赖包版本信息是所述目标项目在所述控制端对应的最新的依赖包的版本信息;将所述目标项目对应的控制端依赖包版本信息发送给所述开发端,以便所述开发端根据所述控制端依赖包版本信息校验所述目标项目在所述开发端对应的开发端依赖包版本信息。
其中,所述方法还包括:接收所述开发端发送的所述目标项目对应的开发端依赖包版本信息;查询所述控制端是否存在所述目标项目对应的控制端依赖包版本信息;如果所述控制端存在所述目标项目对应的控制端依赖包版本信息,则根据所述目标项目对应的开发端依赖包版本信息更新所述目标项目对应的控制端依赖包版本信息;如果所述控制端不存在所述目标项目对应的控制端依赖包版本信息,则根据所述目标项目对应的开发端依赖包版本信息创建所述目标项目对应的控制端依赖包版本信息。
其中,所述方法还包括:根据目标项目对应的待更新依赖包的版本信息,更新所述目标项目对应的控制端依赖包版本信息,以使所述开发端根据更新后的所述控制端依赖包信息,在所述开发端更新所述待更新依赖包。
本发明实施例还提供了一种存储介质。这里的存储介质存储有一个或者多个程序。其中,存储介质可以包括易失性存储器,例如随机存取存储器;存储器也可以包括非易失性存储器,例如只读存储器、快闪存储器、硬盘或固态硬盘;存储器还可以包括上述种类的存储器的组合。
当计算机可存储介质中一个或者多个程序可被一个或者多个处理器执行,以实现上述在开发端执行的依赖包版本管理方法或者实现上述在控制端执行的依赖包版本管理方法。由于在开发端执行的依赖包版本管理方法或者实现上述在控制端执行的依赖包版本管理方法已经在上面进行了具体描述,故在此不做赘述。
以上所述仅为本发明的实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。

Claims (11)

1.一种依赖包版本管理方法,其特征在于,在开发端执行,包括:
确定目标项目对应的开发端依赖包版本信息;
向预设的控制端发送所述目标项目对应的依赖包版本请求信息,并接收所述控制端返回的所述目标项目对应的控制端依赖包版本信息;所述控制端依赖包版本信息是所述目标项目在所述控制端对应的最新更新的依赖包的版本信息;
根据所述控制端依赖包版本信息,校验所述开发端依赖包版本信息;其中,如果所述开发端依赖包版本信息和所述控制端依赖包版本信息相同,则运行所述目标项目;反之,则先根据所述控制端依赖包版本信息,在所述开发端更新所述目标项目对应的依赖包的版本,再运行所述目标项目。
2.根据权利要求1所述的方法,其特征在于,所述确定所述目标项目对应的开发端依赖包版本信息,包括:
在所述目标项目中启动预设的脚手架工具;
通过所述脚手架工具初始化所述目标项目,并确定所述目标项目对应的开发端依赖包版本信息。
3.根据权利要求1所述的方法,其特征在于,在所述确定目标项目对应的开发端依赖包版本信息之前,所述方法还包括:
启动预设的脚手架工具并通过所述脚手架工具创建所述目标项目,或者,创建所述目标项目并在创建的所述目标项目中启动所述脚手架工具;
通过所述脚手架工具生成所述目标项目对应开发端依赖包版本信息;
将所述目标项目对应的开发端依赖包版本信息发送给所述控制端,使所述控制端根据所述目标项目对应的开发端依赖包版本信息创建所述目标项目对应的控制端依赖包版本信息。
4.根据权利要求1所述的方法,其特征在于,在运行所述目标项目的过程中,或者,停止运行所述目标项目之后,所述方法还包括:
在所述开发端更新所述目标项目对应的依赖包;
根据更新的所述依赖包对应的版本信息,生成所述目标项目对应的开发端依赖包版本信息;
将所述目标项目对应的开发端依赖包版本信息发送给所述控制端,使所述控制端根据所述目标项目对应的开发端依赖包版本信息更新所述目标项目对应的控制端依赖包版本信息。
5.一种依赖包版本管理方法,其特征在于,在控制端执行,包括:
接收开发端发送的目标项目对应的依赖包版本请求信息;
根据所述目标项目对应的依赖包版本请求信息,查询所述目标项目对应的控制端依赖包版本信息;所述控制端依赖包版本信息是所述目标项目在所述控制端对应的最新的依赖包的版本信息;
将所述目标项目对应的控制端依赖包版本信息发送给所述开发端,以便所述开发端根据所述控制端依赖包版本信息校验所述目标项目在所述开发端对应的开发端依赖包版本信息。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
接收所述开发端发送的所述目标项目对应的开发端依赖包版本信息;
查询所述控制端是否存在所述目标项目对应的控制端依赖包版本信息;
如果所述控制端存在所述目标项目对应的控制端依赖包版本信息,则根据所述目标项目对应的开发端依赖包版本信息更新所述目标项目对应的控制端依赖包版本信息;
如果所述控制端不存在所述目标项目对应的控制端依赖包版本信息,则根据所述目标项目对应的开发端依赖包版本信息创建所述目标项目对应的控制端依赖包版本信息。
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
根据目标项目对应的待更新依赖包的版本信息,更新所述目标项目对应的控制端依赖包版本信息,以使所述开发端根据更新后的所述控制端依赖包信息,在所述开发端更新所述待更新依赖包。
8.一种依赖包版本管理装置,其特征在于,被设置在开发端,包括:
确定模块,用于确定目标项目对应的开发端依赖包版本信息;
交互模块,用于向预设的控制端发送所述目标项目对应的依赖包版本请求信息,并接收所述控制端返回的所述目标项目对应的控制端依赖包版本信息;所述控制端依赖包版本信息是所述目标项目在所述控制端对应的最新更新的依赖包的版本信息;
校验模块,用于根据所述控制端依赖包版本信息,校验所述开发端依赖包版本信息;其中,如果所述开发端依赖包版本信息和所述控制端依赖包版本信息相同,则运行所述目标项目;反之,则先根据所述控制端依赖包版本信息,在所述开发端更新所述目标项目对应的依赖包的版本,再运行所述目标项目。
9.一种依赖包版本管理装置,其特征在于,被设置在控制端,包括:
接收模块,用于接收开发端发送的目标项目对应的依赖包版本请求信息;
查询模块,用于根据所述目标项目对应的依赖包版本请求信息,查询所述目标项目对应的控制端依赖包版本信息;所述控制端依赖包版本信息是所述目标项目在所述控制端对应的最新的依赖包的版本信息;
发送模块,用于将所述目标项目对应的控制端依赖包版本信息发送给所述开发端,以便所述开发端根据所述控制端依赖包版本信息校验所述目标项目在所述开发端对应的开发端依赖包版本信息。
10.一种依赖包版本管理设备,其特征在于,所述依赖包版本管理设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1~4中任一项所述的在开发端执行的依赖包版本管理方法或者实现如权利要求5~7中任一项所述的在控制端执行的依赖包版本管理方法。
11.一种存储介质,其特征在于,所述存储介质上存储有依赖包版本管理程序,所述依赖包版本管理程序被处理器执行时实现如权利要求1~4中任一项所述的在开发端执行的依赖包版本管理方法或者实现如权利要求5~7中任一项所述的在控制端执行的依赖包版本管理方法。
CN202010287482.9A 2020-04-13 2020-04-13 一种依赖包版本管理方法、装置、设备和存储介质 Pending CN111522577A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010287482.9A CN111522577A (zh) 2020-04-13 2020-04-13 一种依赖包版本管理方法、装置、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010287482.9A CN111522577A (zh) 2020-04-13 2020-04-13 一种依赖包版本管理方法、装置、设备和存储介质

Publications (1)

Publication Number Publication Date
CN111522577A true CN111522577A (zh) 2020-08-11

Family

ID=71902120

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010287482.9A Pending CN111522577A (zh) 2020-04-13 2020-04-13 一种依赖包版本管理方法、装置、设备和存储介质

Country Status (1)

Country Link
CN (1) CN111522577A (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111708564A (zh) * 2020-08-20 2020-09-25 上海森亿医疗科技有限公司 多模型的管理方法、系统、介质及服务器
CN112416390A (zh) * 2020-11-11 2021-02-26 北京五八信息技术有限公司 更新npm包的方法、装置、电子设备及可读存储介质
CN112527335A (zh) * 2020-12-21 2021-03-19 恩亿科(北京)数据科技有限公司 自动化处理npm依赖包安装的方法、系统和计算机设备
CN112596753A (zh) * 2020-12-29 2021-04-02 上海瑞家信息技术有限公司 依赖包安装方法、装置、电子设备和计算机可读介质
CN113342395A (zh) * 2021-06-04 2021-09-03 中国工商银行股份有限公司 一种依赖包管理方法和装置
CN113703827A (zh) * 2021-07-31 2021-11-26 浪潮电子信息产业股份有限公司 一种依赖包管理方法、系统、设备及计算机可读存储介质
CN114661338A (zh) * 2022-04-06 2022-06-24 北京达佳互联信息技术有限公司 一种程序包的处理方法、装置、电子设备及存储介质
CN115145631A (zh) * 2022-08-31 2022-10-04 云账户技术(天津)有限公司 幽灵依赖的处理方法、装置、电子设备及可读存储介质
CN117289965A (zh) * 2023-09-05 2023-12-26 上海顶赞信息技术有限公司 一种拓展指令更新方法、装置、电子设备和存储介质
CN117971297A (zh) * 2023-12-27 2024-05-03 广州鼎甲计算机科技有限公司 依赖包同步方法、装置、计算机设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5859977A (en) * 1991-10-18 1999-01-12 Hitachi, Ltd. System for software update in manner based on processing properties of devices via maintenance network while allowing data transmission between devices on another network
CN107391104A (zh) * 2017-05-31 2017-11-24 杭州大搜车汽车服务有限公司 一种客户端与react native代码的更新依赖管理方法、装置及系统
CN108334334A (zh) * 2018-03-07 2018-07-27 政采云有限公司 一种管理依赖包版本的方法和系统
CN110704025A (zh) * 2019-08-29 2020-01-17 贝壳技术有限公司 编码规范工具的生成方法和装置、存储介质、电子设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5859977A (en) * 1991-10-18 1999-01-12 Hitachi, Ltd. System for software update in manner based on processing properties of devices via maintenance network while allowing data transmission between devices on another network
CN107391104A (zh) * 2017-05-31 2017-11-24 杭州大搜车汽车服务有限公司 一种客户端与react native代码的更新依赖管理方法、装置及系统
CN108334334A (zh) * 2018-03-07 2018-07-27 政采云有限公司 一种管理依赖包版本的方法和系统
CN110704025A (zh) * 2019-08-29 2020-01-17 贝壳技术有限公司 编码规范工具的生成方法和装置、存储介质、电子设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
江庆等: "Vue+Webpack框架在银行App前端开发的应用" *

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111708564A (zh) * 2020-08-20 2020-09-25 上海森亿医疗科技有限公司 多模型的管理方法、系统、介质及服务器
CN112416390B (zh) * 2020-11-11 2022-01-04 北京五八信息技术有限公司 更新npm包的方法、装置、电子设备及可读存储介质
CN112416390A (zh) * 2020-11-11 2021-02-26 北京五八信息技术有限公司 更新npm包的方法、装置、电子设备及可读存储介质
CN112527335A (zh) * 2020-12-21 2021-03-19 恩亿科(北京)数据科技有限公司 自动化处理npm依赖包安装的方法、系统和计算机设备
CN112527335B (zh) * 2020-12-21 2024-04-19 恩亿科(北京)数据科技有限公司 自动化处理npm依赖包安装的方法、系统和计算机设备
CN112596753A (zh) * 2020-12-29 2021-04-02 上海瑞家信息技术有限公司 依赖包安装方法、装置、电子设备和计算机可读介质
CN113342395A (zh) * 2021-06-04 2021-09-03 中国工商银行股份有限公司 一种依赖包管理方法和装置
CN113703827A (zh) * 2021-07-31 2021-11-26 浪潮电子信息产业股份有限公司 一种依赖包管理方法、系统、设备及计算机可读存储介质
CN113703827B (zh) * 2021-07-31 2024-02-09 浪潮电子信息产业股份有限公司 一种依赖包管理方法、系统、设备及计算机可读存储介质
CN114661338A (zh) * 2022-04-06 2022-06-24 北京达佳互联信息技术有限公司 一种程序包的处理方法、装置、电子设备及存储介质
CN115145631A (zh) * 2022-08-31 2022-10-04 云账户技术(天津)有限公司 幽灵依赖的处理方法、装置、电子设备及可读存储介质
CN117289965A (zh) * 2023-09-05 2023-12-26 上海顶赞信息技术有限公司 一种拓展指令更新方法、装置、电子设备和存储介质
CN117289965B (zh) * 2023-09-05 2024-08-30 上海顶赞信息技术有限公司 一种拓展指令更新方法、装置、电子设备和存储介质
CN117971297A (zh) * 2023-12-27 2024-05-03 广州鼎甲计算机科技有限公司 依赖包同步方法、装置、计算机设备和存储介质

Similar Documents

Publication Publication Date Title
CN111522577A (zh) 一种依赖包版本管理方法、装置、设备和存储介质
CN108551487B (zh) PaaS平台的应用部署方法、装置、服务器及存储介质
CN108595221B (zh) PaaS平台的插件加载方法、装置、服务器及存储介质
CN107979508B (zh) 微服务测试方法及装置
US10114637B1 (en) Automatically updating a shared project build platform
US10579966B1 (en) Adapting a shared project build platform to a developer plugin
US6202207B1 (en) Method and a mechanism for synchronized updating of interoperating software
US6871345B1 (en) Self managing software agents with introspection
US7310801B2 (en) Servicing a component-based software product throughout the software product lifecycle
US7448034B2 (en) Build time determination and installation of drivers on cloned systems
CN105657191B (zh) 一种基于Android系统的应用增量升级方法及系统
US8261253B2 (en) Method for restoring software applications on desktop computers
CN111090452B (zh) 服务环境的切换方法及计算机可读存储介质
CN107704260B (zh) 一种更新应用软件的软件开发工具包的方法及系统
CN107220074B (zh) 对支撑层软件功能的访问、升级方法及装置
CN109977008B (zh) 一种应用程序依赖的js代码与原生库兼容的方法及终端
JP4931343B2 (ja) ネットワークサービスを実行するための自己インストールソフトウェアコンポーネントを提供するシステム、方法、プログラム、装置
CN105389187B (zh) 一种系统更新的方法
US10896109B2 (en) Non-monotonic eventual convergence for desired state configuration
CN106648762B (zh) 一种搭建开发环境的方法及装置
CN112905230A (zh) 应用程序的管理方法、装置、终端设备和存储介质
CN115543429A (zh) 项目环境的搭建方法、电子设备及计算机可读存储介质
CN109857444B (zh) 应用程序的更新方法、装置、电子设备和可读存储介质
CN106909434B (zh) 可执行程序中未定义函数的检测方法及装置
US9389851B1 (en) System and method for providing consistency between software library repositories

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: Room 221, 2 / F, block C, 18 Kechuang 11th Street, Daxing District, Beijing, 100176

Applicant after: Jingdong Technology Holding Co.,Ltd.

Address before: Room 221, 2 / F, block C, 18 Kechuang 11th Street, Daxing District, Beijing, 100176

Applicant before: Jingdong Digital Technology Holding Co.,Ltd.

Address after: Room 221, 2 / F, block C, 18 Kechuang 11th Street, Daxing District, Beijing, 100176

Applicant after: Jingdong Digital Technology Holding Co.,Ltd.

Address before: Room 221, 2 / F, block C, 18 Kechuang 11th Street, Daxing District, Beijing, 100176

Applicant before: JINGDONG DIGITAL TECHNOLOGY HOLDINGS Co.,Ltd.

RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20200811