使用 Verdaccio 搭建私有 npm 服务

为什么要搭建npm私服?

假如我们由于平时的技术积累,写了一些可以复用的工具,我们想分享给公司其它同事使用;或者我们公司可能会有一个公共组件仓库,我们想用npm的方式安装而不是去简单的拷贝文件;然而,这些工具或者组件都涉及公司内部的机密,这时我们就可以搭建一个npm私服,只在公司局域网访问,我们可以将我们写好的工具发布到上面,方便其它同事安装使用。这是一个比较顺畅的工作流。

为什么要选verdaccio?

目前,市面上用来搭建npm私服的工具有大体三种:

  1. nexus
  2. cnpm
  3. verdaccio

nexus功能强大,但是部署和配置较繁琐,不符合我们的使用要求。cnpm虽然比nexus配置简单,但是也需要使用到mysql。有没有更好用的工具呢?那就是verdaccio。verdaccio使用文件存储包数据,无需安装数据库并且部署简单,只需要一行代码就可以部署完成,这个正是我们需要的。

verdaccio部署

首先,假设我们已经在服务器端安装了nodejs和npm。下面我们来讲讲verdaccio的部署。

1
2
3
4
5
6
7
8
# 安装
npm install -g verdaccio

## 初始化
verdaccio --init ~/verdaccio.config.js

## 运行verdaccio
verdaccio

下面我们用浏览器访问 http://localhost:4873,如果我们看到这样的界面,说明我们已经部署成功。

使用pm2启动

pm2 是一款著名的nodejs进程守护和管理工具,下面我们用pm2来启动verdaccio:

1
2
# 使用pm2启动
pm2 start verdaccio

启动成功后会输出以下内容

使用

为了方便切换npm仓库地址,我们使用nrm。首先,我们来安装nrm。

1
npm install -g nrm

下面,我们使用nrm管理npm仓库原地址,我们使用verdaccio地址。

1
2
nrm add local http://localhost:4873
nrm use local

这样,我们就成功将npm的仓库地址换成了我们最新搭建的私服地址。🍺

发布包

在发布包之前,我们首先需要新建用户。

1
2

npm adduser

在输入用户名、密码和邮箱后,我们成功在我们本地的npm私服创建了用户。

下面我们来发布一个npm包:

1
npm publish npm_pkg

总结

在我们发布完成后,包的内容会显示在网页上,这样我们就完成来verdaccio的基本使用操作。