verdaccio-npm私服搭建教程

本文介绍了如何使用verdaccio搭建npm私有仓库,以解决公司内部包管理、速度提升和隐私保护的问题。详细步骤包括安装、配置、权限管理及使用代理工具nrm。此外,还分享了如何通过pm2保持verdaccio服务的稳定运行。
摘要由CSDN通过智能技术生成

npm私库方式:

1.sinopia

是一个部署简易的可以实现github仓储私有化的npm组件

sinopia虽然历史悠久,但是已经停止维护

内网,下载时候方便

npm私服搭建的必要性

1.如果公司处于隐私保护的需要,不想讲自己封的包推到npm社区,但又急需要一套完整的包管理工具来管理越来越多的组件,模块,项目。对于前端,最熟悉的莫过于npm,bower等,但是bower的市场明显没有npm强大的,npm是前端包管理的不二选择 ~

2.我们公司项目里直接依赖或间接依赖的包可能会有上千个,下过node库的人都懂,从npmjs上下载有多慢,所以大家会用cnpm从淘宝那下,但有比淘宝更快的方法是从局域网的私服下。

3.当我们搭好了这套私服管理工具之后有什么优势呢?

  • 私有包托管在我们的私服上,不对外。
  • 项目中使用的所有包可以缓存在我们的私服上,然后大家下包的时候走私服,不用走npmjs了。速度快上七八倍不在话下。
  • 对于下载和发布npm包都有了相应的权限管理。

搭建手册:

安装nodejs,npm

2.verdaccio

安装verdaccio

npm install -g verdaccio --unsafe-perm

启动verdaccio

verdaccio

修改配置:

修改npm代理

npm set registry http://ip:8473

查看代理的配置

npm config list

查看当前用户

npm who am i

注册用户

npm adduser 依次添加用户

修改配置:

/Users/emperor/.config/verdaccio

配置文件原文:

 

修改上游npm用于下载依赖

 

verdaccio -c config.yaml

常用配置详解:

  • storage: 仓库保存的地址,publish时仓库保存的地址。
  • auth: htpasswd file:账号密码的文件地址,初始化时不存在,可指定需要手工创建。 

max_users:默认1000,为允许用户注册的数量。 

为-1时,不允许用户通过npm adduser注册。 

但是,当为-1时,可以通过直接编写htpasswd file内容的方式添加用户。

  • 语法:用户名:{SHA}哈希加密的字符=:autocreated 时间
  • 加密算法:SHA1哈稀之后再转换成 Base64 输出就好
  • uplinks: 配置上游的npm服务器,主要用于请求的仓库不存在时到上游服务器去拉取。
  • packages: 配置模块。access访问下载权限,publish包的发布权限。 

格式如下: 

scope: 

权限:操作 

scope:两种模式 

  • 一种是 @/ 表示某下属的某项目
  • 另一种是 * 匹配项目名称(名称在package.json中有定义)
  • 权限: 
  • l access: 表示哪一类用户可以对匹配的项目进行安装(install)
  • l publish: 表示哪一类用户可以对匹配的项目进行发布(publish)
  • l proxy: 如其名,这里的值是对应于 uplinks 的名称,如果本地不存在,允许去对应的uplinks去取。
  • 操作:
  • l $all 表示所有人(已注册、未注册)都可以执行对应的操作
  • l $authenticated 表示只有通过验证的人(已注册)可以执行对应操作,注意,任何人都可以去注册账户。
  • l $anonymous 表示只有匿名者可以进行对应操作(通常无用)
  • l 或者也可以指定对应于之前我们配置的用户表 htpasswd 中的一个或多个用户,这样就明确地指定哪些用户可以执行匹配的操作 

听端口和主机名。 

  • localhost:4873      #默认
  • 0.0.0.0:4873       #在所有网卡监听

代理

+ View Code

修改了配置文件后,运行命令 

$ verdaccio -c config.yml

nrm安装管理代理

npm install -g nrm

nrm use taobao

nrm add registry http://registry.npm.frp.trmap.cn/

nrm del <registry>

nrm test npm    

nrm current

使用pm2代理verdaccio 这样可以使得进程一直都在而不会被随意杀掉

同时自动做到负载均衡

安装pm2

npm install pm2 -g

  • 如图中所示这个verdaccio 的启动文件的路径就是D:\Node\node_global\node_modules\verdaccio\bin\verdaccio
  • 然后

pm2 start C:\Users\Administrator\AppData\Roaming\npm\node_modules\verdaccio\bin\verdaccio

同理:如果你的pm2的启动路径和verdaccio的启动文件的路径在一个目录下可直接 pm2 start verdaccio

启动成功如图:

停止

pm2 stop which D:\nodejs\node_global\node_modules\verdaccio

查看日志

pm2 show D:\nodejs\node_global\node_modules\verdaccio

发布模块

npm publish

删除模块

npm unpublish --force yourPackage

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值