npm私有包管理系统、方法、电子设备及存储介质与流程

文档序号:29637009发布日期:2022-04-13 17:24阅读:194来源:国知局
npm私有包管理系统、方法、电子设备及存储介质与流程

1.本发明涉及互联网技术领域,尤其涉及一种npm私有包管理系统、方法、电子设备及存储介质。


背景技术:

2.用npm管理前端代码已经是业界趋势,在针对公司内部的一些业务逻辑上,可以将通用的部分封装成包,并分布到私有的npm服务上。
3.npm的架构后端是一个couchdb,前面用一个定制的反向代理挡一下。npm的客户端访问registry.npmjs.org,浏览器访问www.npmjs.org,这两部分的流量都导向反向代理。
4.企业使用这个架构时,上线生产系统的时候,需要花半小时甚至更久等待npm模块依赖安装完毕。且官方的npm上的模块全部是开源的。一些与企业业务逻辑相关的模块可能不适合开源。npm上的模块质量参差不齐,下载的时候公共的包只能走公共仓库。


技术实现要素:

5.本发明的目的在于提供一种npm私有包管理系统、方法、电子设备及存储介质,该npm私有包管理的方法能够解决现有技术中npm包私密性较差的问题。
6.为了实现上述目的,本发明提供如下技术方案:
7.本发明实施例提供一种npm私有包管理的方法,所述方法具体包括:
8.将cnpm源码克隆至服务端;
9.获取npm私有包管理请求,其中,所述npm私有包管理请求携带有待管理目标npm私有包的标识信息和版本信息;
10.根据所述npm私有包管理请求查询所述服务端是否存储有所述npm私有包,若是,基于所述npm私有包修改配置文件config.js;
11.执行发布命令将所述npm私有包发布至npm私有仓库。
12.在上述技术方案的基础上,本发明还可以做如下改进:
13.进一步地,所述根据所述npm私有包管理请求查询所述服务端是否存储有所述npm私有包,若是,基于所述npm私有包修改配置文件config.js,包括:
14.根据所述配置文件中的注释标记,确定配置文件中待修改的内容所在的区域;
15.确定所述配置文件中的待修改参数,基于所述注释标记将所述待修改参数进行包裹,在所述区域内修改所述待修改参数的参数值。
16.进一步地,所述根据所述npm私有包管理请求查询所述服务端是否存储有所述npm私有包,若是,基于所述npm私有包修改配置文件config.js,还包括:
17.基于所述npm私有包的根目录创建.npmrc配置文件。
18.进一步地,所述根据所述npm私有包管理请求查询所述服务端是否存储有所述npm私有包,若是,基于所述npm私有包修改配置文件config.js,还包括:
19.将所述npm私有包添加到packege.json文件中,并指定所述npm私有包所对应的
.npmrc配置文件。
20.进一步地,所述将所述npm私有包添加到packege.json文件中,并指定所述npm私有包所对应的.npmrc配置文件,包括:
21.通过packege.json文件中的dependencies属性增加管理员邮箱信息至所述npm私有包,并指定所述npm私有包所对应的.npmrc配置文件。
22.进一步地,所述执行发布命令将所述npm私有包发布至私有仓库,包括:
23.搭建npm私有仓库;
24.基于使用请求从所述npm私有仓库查询出对应的npm私有包;
25.将所述npm私有包发送至客户端。
26.进一步地,所述根据所述npm私有包管理请求查询所述服务端是否存储有所述npm私有包,包括:
27.通过npm run install命令从数据库获取数据包。
28.一种npm私有包管理的系统,包括:
29.克隆模块,用于cnpm源码克隆至服务端;
30.获取模块,用于获取npm私有包管理请求,其中,所述npm私有包管理请求携带有待管理目标npm私有包的标识信息和版本信息;
31.查询模块,用于根据所述npm私有包管理请求查询所述服务端是否存储有所述npm私有包;
32.修改模块,用于基于所述npm私有包修改配置文件config.js;
33.发布模块,用于执行发布命令将所述npm私有包发布至npm私有仓库。
34.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如所述方法的步骤。
35.一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述方法的步骤。
36.本发明具有如下优点:
37.本发明中的npm私有包管理的方法,将cnpm源码克隆至服务端;获取npm私有包管理请求,其中,所述npm私有包管理请求携带有待管理目标npm私有包的标识信息和版本信息;根据所述npm私有包管理请求查询所述服务端是否存储有所述npm私有包;若是,基于所述npm私有包修改配置文件config.js;执行发布命令将所述npm私有包发布至npm私有仓库;解决了现有技术中npm包私密性较差的问题。
附图说明
38.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
39.图1为本发明npm私有包管理的方法的流程图;
40.图2为本发明npm私有包管理的系统的框图;
41.图3为本发明提供的电子设备实体结构示意图。
42.附图标记说明
43.克隆模块10,获取模块20,查询模块30,修改模块40,发布模块50,电子设备60,处理器601,存储器602,总线603。
具体实施方式
44.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
45.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
46.在本技术中,术语“上”、“下”、“左”、“右”、“前”、“后”、“顶”、“底”、“内”、“外”、“中”、“竖直”、“水平”、“横向”、“纵向”等指示的方位或位置关系为基于附图所示的方位或位置关系。这些术语主要是为了更好地描述本技术及其实施例,并非用于限定所指示的装置、元件或组成部分必须具有特定方位,或以特定方位进行构造和操作。
47.并且,上述部分术语除了可以用于表示方位或位置关系以外,还可能用于表示其他含义,例如术语“上”在某些情况下也可能用于表示某种依附关系或连接关系。对于本领域普通技术人员而言,可以根据具体情况理解这些术语在本技术中的具体含义。
48.另外,术语“多个”的含义应为两个以及两个以上。
49.需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本技术。
50.图1为本发明npm私有包管理的方法实施例流程图,如图1所示,本发明实施例提供的一种npm私有包管理的方法包括以下步骤:
51.s101,将cnpm源码克隆至服务端;
52.具体的,cnpm介绍说明:是一个完整npmjs.org镜像,同步频率目前为10分钟一次以保证尽量与官方服务同步。
53.网址:https://github.com/cnpm/cnpmjs.org.git;根据网址下载cnpm源码;根据所述cnpm源码在服务端安装cnpm;
54.安装完后查看其版本cnpm-v或关闭命令提示符重新打开,安装完直接使用有可能会出现错误;cnpm跟npm用法完全一致,只是在执行命令时改为cnpm;
55.s102,获取npm私有包管理请求,其中,npm私有包管理请求携带有待管理目标npm私有包的标识信息和版本信息;
56.具体的,服务端获取npm私有包管理请求,npm是随同nodejs一起安装的包管理工具,能解决nodejs代码部署上的很多问题,常见的使用场景有以下几种:
57.允许用户从npm服务器下载别人编写的第三方包到本地使用。
58.允许用户从npm服务器下载并安装别人编写的命令行程序到本地使用。
59.允许用户将自己编写的包或命令行程序上传到npm服务器供别人使用。
60.s103,根据npm私有包管理请求查询服务端是否存储有npm私有包,若是,基于npm私有包修改配置文件config.js;
61.具体的,根据所述配置文件中的注释标记,确定配置文件中待修改的内容所在的区域;
62.确定所述配置文件中的待修改参数,基于所述注释标记将所述待修改参数进行包裹,在所述区域内修改所述待修改参数的参数值。
63.基于所述npm私有包的根目录创建.npmrc配置文件。
64.将所述npm私有包添加到packege.json文件中,并指定所述npm私有包所对应的.npmrc配置文件。
65.通过packege.json文件中的dependencies属性增加管理员邮箱信息至所述npm私有包,并指定所述npm私有包所对应的.npmrc配置文件;
66.通过npm run install命令从数据库获取数据包。
67.s104,执行发布命令将npm私有包发布至npm私有仓库;
68.具体的,搭建npm私有仓库;基于使用请求从所述npm私有仓库查询出对应的npm私有包;将所述npm私有包发送至客户端。
69.cnpm是企业内部搭建npm镜像和私有npm仓库的开源方案。它同时解决了现有npm架构的一些问题,其优点如下:私有的包,只想在内部使用,其中的代码逻辑有可能涉及到

小秘密’。有些时候,使用npm装包的时候下载速度慢如龟速,部署镜像后,可以确保高速、稳定的npm服务。
70.我们想在下载的时候,私有的包用公司内部的服务器,公共的包走公共仓库。控制npm模块质量和安全,npm上的模块质量参差不齐,搭建npm私有仓库,可以更严格地控制模块的质量和安全,只有经过审核的模块才允许被加入npm私有仓库。
71.发布私有模块:官方的npm上的模块全部是开源的。一些与企业业务逻辑相关的模块可能不适合开源。这部分私有的模块放在npm私有仓库中,使用起来各种方便。
72.确保npm服务快速、稳定:对于企业来说,上线生产系统的时候,需要花半小时甚至更久等待npm模块依赖安装完毕,是不可接受的。部署镜像后,可以确保高速、稳定的npm服务。
73.控制npm模块质量和安全:npm上的模块质量参差不齐,搭建私有仓库,可以更严格地控制模块的质量和安全,只有经过审核的模块才允许被加入npm私有仓库。
74.图2为本发明npm私有包管理的系统实施例流程图,如图2所示,本发明实施例提供的一种npm私有包管理的系统,包括以下步骤:
75.克隆模块10,用于cnpm源码克隆至服务端;
76.获取模块20,用于获取npm私有包管理请求,其中,所述npm私有包管理请求携带有待管理目标npm私有包的标识信息和版本信息;
77.查询模块30,用于根据所述npm私有包管理请求查询所述服务端是否存储有所述npm私有包;
78.修改模块40,用于基于所述npm私有包修改配置文件config.js;
79.发布模块50,用于执行发布命令将所述npm私有包发布至npm私有仓库。
80.图3为本发明实施例提供的电子设备实体结构示意图,如图3所示,电子设备60包括:处理器601(processor)、存储器602(memory)和总线603;
81.其中,处理器601、存储器602通过总线603完成相互间的通信;
82.处理器601用于调用存储器602中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:将cnpm源码克隆至服务端;获取npm私有包管理请求,其中,所述npm私有包管理请求携带有待管理目标npm私有包的标识信息和版本信息;根据所述npm私有包管理请求查询所述服务端是否存储有所述npm私有包,若是,基于所述npm私有包修改配置文件config.js;执行发布命令将所述npm私有包发布至npm私有仓库。
83.本实施例提供一种非暂态计算机可读存储介质,非暂态计算机可读存储介质存储计算机指令,计算机指令使计算机执行上述各方法实施例所提供的方法,例如包括:将cnpm源码克隆至服务端;获取npm私有包管理请求,其中,所述npm私有包管理请求携带有待管理目标npm私有包的标识信息和版本信息;根据所述npm私有包管理请求查询所述服务端是否存储有所述npm私有包,若是,基于所述npm私有包修改配置文件config.js;执行发布命令将所述npm私有包发布至npm私有仓库。
84.本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
85.以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
86.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分的方法。
87.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
88.以上所述仅为本技术的优选实施例而已,并不用于限制本技术,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1