使用Verdaccio搭建自己的npm私服

前言

Verdaccio 是一个 Node.js 创建的轻量的私有npm proxy registry Verdaccio 前身是sinopia,sinopia的作者几年前就已经停止了对sinopia的维护和升级,所幸不是没人管,只是后期又出了一个sinopia的fork,也就是sinopia的分支,最后起名了新名叫 Verdaccio,并且开源免费使用。

为什么要使用私服

  1. 对公司项目封装组件进行隐私保护不对外,不想放到npm 社区上,对于前端,最熟悉的莫过于npm,bower 等,但是bower的市场明显没有npm强大的,npm是前端包管理的不二选择。
  2. 公司项目过多用的框架组件也一样,这个时候用私服就高效的多,直接npm install xxx,一键组件共享使用。
  3. 把包放到自己的服务器上下载包的时候走私服,下载速度快。
  4. 对于包的发布下载有一定的权限管理。

从零开始搭建私服

安装node

这里就不详细说node的安装了 注意node版本不要太低

安装Verdaccio

加上--unsafe-perm的原因是防止报grywarn权限的错

js 复制代码
npm install -g verdaccio --unsafe-perm

配置

找到Verdaccio安装目录,打开config.yaml文件 在配置文件最后添加对应监听端口

js 复制代码
listen: 0.0.0.0:4873                    # listen on all addresses 

verdaccio继承了sinopia,端口号4873

text 复制代码
firewall-cmd --state                # 先查看防火墙状态,
service firewalld start              # 开启防火墙:
firewall-cmd --zone=public --add-port=4873/tcp --permanent  #开放4873端口
firewall-cmd --reload              #重新载入
firewall-cmd --zone=public --query-port=4873/tcp    #查看是否添加成功

启动verdaccio

启动命令

text 复制代码
verdaccio

这个时候就可以查看搭建好的私服网站了 自己的私服网站地址如下格式

http://192.168.1.60:4873

使用pm2对verdaccio进程守护

js 复制代码
npm install -g pm2 --unsafe-perm //安装pm2
pm2 start verdaccio //启动verdaccio

添加用户

添加完用户就可以在verdaccio启动页面尝试登录即可,默认登录后才有发包权限

js 复制代码
npm adduser --registry http://192.168.1.60:4873        //后面是我们的私服地址
类似如下:
Username: beiwanglu  //用户名称
Password: ........ //密码
Email: (this IS public) bwl@163.com
Logged in as rong on http://192.168.1.60:4873

终端用户如何使用

这里需要安装nrm 来对npm 镜像源进行管理,nrm是 npm registry 管理工具, 能够查看和切换当前使用的registry。不安装也可以,安装会更高效。

后面我会整理常用nrm管理工具常用命令和pm2进程守护常用命令

命令安装nrm

js 复制代码
 npm install -g nrm

添加私服名称到搭建的私服地址

这里我的私服名称是bwlnpm,这个名字自己随便起

js 复制代码
nrm add bwlnpm http://192.168.1.60:4873 

查看安装的镜像源registry 命令

js 复制代码
nrm ls

使用添加的私服命令

js 复制代码
nrm use bwlnpm

发布包命令

js 复制代码
npm publish

nrm管理工具常用命令

命令 说明
nrm ls 查看已添加镜像源
nrm use bwlnpm 切换镜像源
nrm add 镜像源名称 <源的地址> 添加新的镜像
nrm del 镜像源名称 删除镜像源
nrm test 镜像源名称 测试镜像源的速度

Verdaccio官网

利用nvm 安装node

相关推荐
风骏时光牛马6 分钟前
AI_Coding:智能代码生成与工程实践
前端
颜进强12 分钟前
22 · NestJs InjectionScopes 注入作用域:默认单例不是偷懒,是最优——以及何时才该打破
前端·后端·ai编程
liangshanbo121520 分钟前
Web Worker 在 AI 前端应用中有什么具体使用场景?
前端·人工智能
拖孩37 分钟前
一个全程 AI 写的小程序「厨菜记」,上线 20 天跑通流量主,收入几块钱,开心得不行
前端·后端·微信小程序
颜进强39 分钟前
21 · NestJs AsyncProviders 异步提供者:useFactory 返回 Promise 之后,容器发生了什么
前端·后端·ai编程
莪_幻尘1 小时前
Agent 体检:乱编、连锁、失忆,给 Agent 做一次五维体检
前端·人工智能·agent
秋天的一阵风1 小时前
🚀 nacos-web-config:运营半夜改条配置,网页秒更新 —— 不用发版、不用轮询,我把它开源了
java·前端·开源
不一样的少年_1 小时前
别用前端思维写后端:一张 5MB 图片,为什么能撑爆内存?
前端·后端·图片资源
沐言人生1 小时前
太吊了!这 2 款网盘工具,让我省 4000 大洋!
前端
鬼手点金2 小时前
opencode-隐私优先配置
服务器·前端·javascript·bug·openclaw