基于Verdaccio搭建的本地npm

2,668 阅读1分钟

Verdaccio · 一个轻量的私有npm proxy registry,支持所有主流的 npm 客户端

安装

npm安装

npm install --global verdaccio

yarn安装

yarn global add verdaccio

基本使用

安装完成后输入 verdaccio 就可以跑起来了,后面我们pm2来统一管理程序,可以看出程序的配置文件路径,以及服务的地址

$> verdaccio
warn --- config file  - /home/.config/verdaccio/config.yaml
warn --- http address - http://localhost:4873/ - verdaccio/3.0.0

使用PM2管理进程

安装

npm install -g pm2

启动 - pm2 start verdaccio, 表格当中可以看出当前verdaccio服务在进程的pid和在pm2中的id,以及状态

pm2 start verdaccio
chenpan@chenpandeMacBook-Pro  ~/Desktop/verdaccio  pm2 start verdaccio
[PM2] Applying action restartProcessId on app [verdaccio](ids: 0)
[PM2] [verdaccio](0) ✓
[PM2] Process successfully started
┌───────────┬────┬─────────┬──────┬──────┬────────┬─────────┬────────┬─────┬──────────┬─────────┬──────────┐
│ App name  │ id │ version │ mode │ pid  │ status │ restart │ uptime │ cpu │ mem      │ user    │ watching │
├───────────┼────┼─────────┼──────┼──────┼────────┼─────────┼────────┼─────┼──────────┼─────────┼──────────┤
│ verdaccio │ 0  │ N/A     │ fork │ 3708 │ online │ 3       │ 0s     │ 0%  │ 7.3 MB   │ chenpan │ disabled │
└───────────┴────┴─────────┴──────┴──────┴────────┴─────────┴────────┴─────┴──────────┴─────────┴──────────┘
 Use `pm2 show <id|name>` to get more details about an app

查看进程详细信息 -pm2 show +id/name

chenpan@chenpandeMacBook-Pro  ~/Desktop/verdaccio  pm2 show 0
 Describing process with id 0 - name verdaccio
┌───────────────────┬──────────────────────────────────────────────┐
│ status            │ online                                       │
│ name              │ verdaccio                                    │
│ version           │ N/A                                          │
│ restarts          │ 3                                            │
│ uptime            │ 3m                                           │
│ script path       │ /usr/local/bin/verdaccio                     │
│ script args       │ N/A                                          │
│ error log path    │ /Users/chenpan/.pm2/logs/verdaccio-error.log │
│ out log path      │ /Users/chenpan/.pm2/logs/verdaccio-out.log   │
│ pid path          │ /Users/chenpan/.pm2/pids/verdaccio-0.pid     │
│ interpreter       │ node                                         │
│ interpreter args  │ N/A                                          │
│ script id         │ 0                                            │
│ exec cwd          │ /Users/chenpan/Desktop/verdaccio             │
│ exec mode         │ fork_mode                                    │
│ node.js version   │ 10.15.3                                      │
│ node env          │ N/A                                          │
│ watch & reload    │ ✘                                            │
│ unstable restarts │ 0                                            │
│ created at        │ 2019-06-11T05:06:31.066Z                     │
└───────────────────┴──────────────────────────────────────────────┘
 Actions available
┌────────────────────────┐
│ km:heapdump            │
│ km:cpu:profiling:start │
│ km:cpu:profiling:stop  │
│ km:heap:sampling:start │
│ km:heap:sampling:stop  │
└────────────────────────┘
 Trigger via: pm2 trigger verdaccio <action_name>

 Code metrics value
┌────────────────────────┬───────────┐
│ Heap Size              │ 40.84 MiB │
│ Heap Usage             │ 84.85 %   │
│ Used Heap Size         │ 34.65 MiB │
│ Active requests        │ 0         │
│ Active handles         │ 4         │
│ Event Loop Latency     │ 3.69 ms   │
│ Event Loop Latency p95 │ 5.92 ms   │
└────────────────────────┴───────────┘
 Divergent env variables from local env
┌────────┬─────┐
│ OLDPWD │ N/A │
└────────┴─────┘

 Add your own code metrics: http://bit.ly/code-metrics
 Use `pm2 logs verdaccio [--lines 1000]` to display logs
 Use `pm2 env 0` to display environement variables
 Use `pm2 monit` to monitor CPU and Memory usage verdaccio

客户端使用

  • 发布流程:按照下列步骤输入用户名字,密码,邮箱;然后发布即可
npm adduser --registry http://localhost:4873/
npm publish --registry http://localhost:4873/
  • 拉取流程:安装nrm并配置好,拉取本地包,如果本地没有,默认从https://registry.npmjs.org/拉取
    安装nrm
npm install -g nrm
nrm add verdaccio http://172.24.108.167:4873    //添加一个名为verdaccio的地址
nrm ls                                          //查看地址
nrm use +name                                   //切换地址
npm install ....

配置参数

输入以下命令,可以看到有两个文件,一个目录,config.yaml 用于存放服务配置文档,htpasswd存放账户信息,storage目录存放发布上来的包

chenpan@chenpandeMacBook-Pro  ~  $HOME/.config/verdaccio
 chenpan@chenpandeMacBook-Pro  ~/.config/verdaccio  ll
total 16
-rw-r--r--  1 chenpan  staff   2.2K  6 11 10:43 config.yaml
-rw-r--r--  1 chenpan  staff    60B  6 10 11:11 htpasswd
drwxr-xr-x  4 chenpan  staff   128B  6 11 10:39 storage

关于config.yaml的具体配置点这里