使用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

相关推荐
qiyi.sky8 分钟前
JavaWeb——Vue组件库Element(3/6):常见组件:Dialog对话框、Form表单(介绍、使用、实际效果)
前端·javascript·vue.js
煸橙干儿~~11 分钟前
分析JS Crash(进程崩溃)
java·前端·javascript
安冬的码畜日常21 分钟前
【D3.js in Action 3 精译_027】3.4 让 D3 数据适应屏幕(下)—— D3 分段比例尺的用法
前端·javascript·信息可视化·数据可视化·d3.js·d3比例尺·分段比例尺
l1x1n01 小时前
No.3 笔记 | Web安全基础:Web1.0 - 3.0 发展史
前端·http·html
昨天;明天。今天。1 小时前
案例-任务清单
前端·javascript·css
zqx_72 小时前
随记 前端框架React的初步认识
前端·react.js·前端框架
惜.己3 小时前
javaScript基础(8个案例+代码+效果图)
开发语言·前端·javascript·vscode·css3·html5
什么鬼昵称3 小时前
Pikachu-csrf-CSRF(get)
前端·csrf
长天一色3 小时前
【ECMAScript 从入门到进阶教程】第三部分:高级主题(高级函数与范式,元编程,正则表达式,性能优化)
服务器·开发语言·前端·javascript·性能优化·ecmascript
NiNg_1_2343 小时前
npm、yarn、pnpm之间的区别
前端·npm·node.js