基于pm2 + Verdaccio 搭建私有npm库

基于pm2 + Verdaccio 搭建私有npm库

作者:求玮

前言

最近开会的时候讨论到前端组件库搭建,因为需要多人协作,使用npm link等都比较麻烦,且当业务规模较大了之后,我们一般会有自己的脚手架,自己的全局工具包等等。其中可能包含了自身的业务代码不能公开,因此我们都需要一个私有化的npm仓库。

一般私有化的npm仓库有以下几种方法实现:

  1. 通过npm购买私有服务
  2. 通过git直接引用
  3. 通过开源项目直接搭建,例如cnpm、verdaccio、sinopia等

下面对各个方案进行一个粗浅的对比:

  • 官方私有npm服务:团队版$7/人/月这个价格就已经直接劝退,且不说npm在国内的网络情况不容乐观。
  • 直接安装git代码:直接通过npm install 引入对应git代码确实有一定的便利性,但是当全局包多了之后不便于维护且权限难以管理
  • sinopia:基于Node.js实现的一个开源npm库,年久失修。最近一次提交是6年前,直接放弃。
  • cnpm:阿里出的npm私有方案,权限控制较为全面但是配置复杂,需要自己搭建mysql之类的数据库存储。
  • verdaccio:基于sinopia继续开发,目前维护很频繁而且配置简单,可以快速搭建。

为什么选用Verdaccio

先跟大家吐个槽,其实我本来是想用sinopia搭建的私服,也知道大家也都倾向于sinopia来搭,毕竟它出道比较早,知名度比较高,但是sinopia的作者几年前就已经停止了对sinopia的维护和升级,不信大家可以自己去GitHub上看,上次更新真的停留在了几年前,唉,然后真是留了一堆坑,所幸不是没人管,只是有一群人又出了一个sinopia的fork,也就是sinopia的分支,而且还起了个洋气的意大利名verdaccio ,但是verdaccio 确实是正在维护的,我查了最近一次更新还是在2天前,这帮人还是挺勤快的,造福了大家啊~ 而且也比较好用,我用sinopia搭的时候填的一堆坑在verdaccio 这压!根!不!存!在!真是绝望啊,为啥我没有早点发现它。这里是verdaccio 在github的源码地址,大家想深入了解最好还是去看看源码和详细介绍。话不多说下面正式开始verdaccio的搭建。

开始搭建

安装

Verdaccio 的安装启动过程较为简单。首先是全局安装 Verdaccio:

npm i -g verdaccio

然后,在终端中输入 verdaccio 命令启动 Verdaccio:

verdaccio

接着 Verdaccio 会在终端中输出提示,输出它的配置文件位置、启动的服务地址等信息:
在这里插入图片描述

默认 Verdaccio 启动的服务都会在 4873 这个端口,在浏览器中打开这个地址我们就会看到 Verdaccio 搭建的私有库 npm 的界面:
在这里插入图片描述

修改配置

虽然,安装和启动好了 Verdaccio。但是,由于 Verdaccio 默认的配置和我们生产的需求不一致,所以我们需要修改一下 Verdaccio 的配置。
在生产环境下,私有 npm 库需要具备以下 3 个功能:

  • 支持对 npm 包的搜索
  • 严格的权限把控,npm 包的访问只能是已注册的用户。并且在一些场景下,需要删除用户

配置文件

vim /root/.config/verdaccio/config.yaml

在这里插入图片描述

# 存放软件所有软件包的目录
storage: ../storage
# 存放所有插件的目录
plugins: ../plugins
 
web:
  # 网站Title
  title: Verdaccio
  # 禁用Gravatar头像
  # gravatar: false
  # 排序方式 asc|desc
  # sort_packages: asc
  # 是否启用暗黑模式
  # darkMode: true
  # logo地址
  # logo: http://somedomain/somelogo.png
  # favicon地址
  # favicon: http://somedomain/favicon.ico | /path/favicon.ico
 
# i18n翻译配置
# i18n:
# 可用列表见:https://github.com/verdacc
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值