搭建自己npm仓库(Verdaccio)

315 阅读2分钟

使用背景

一般公司里边封装的组件或者工具类涉及到保密得,不能直接传到npm维护包;

我: 那怎么维护呢?

Verdaccio: 用我搭建一个公司内部npm仓库

安装

1、环境

需要安装nodejs,去node官网下载就可以了,需要v12或更高

2、开始安装

npm install -g verdaccio

install_verdaccio-3d847df4c38426a92f123d51e4b566e4.gif

3、配置文件

更多配置

# 仓库地址
storage: /home/npm_package/storage

# 插件地址
plugins: /home/npm_package/plugins

# 认证
auth:  
  htpasswd:   
    file: ./htpasswd  
      max_users: 1000
      
# 上行链路,本地找不到插件会去这里加载
uplinks:  
  npmjs:  
    url: https://registry.npmjs.org/

# 允许所有用户 **访问** 所有包,但只有已登陆用户才能 **发布**
packages:
  '@*/*':
    # scoped packages
    access: $all
    publish: $authenticated
    unpublish: $authenticated
    proxy: npmjs
  
# JSON文档的最大主体大小是10mb,如果遇到“请求实体太大”的错误,可以增加这个值
max_body_size: 100mb

# 端口
listen: 0.0.0.0:4000

3、启动命令

# --config 配置文件地址
verdaccio --config 配置文件目录/config.yaml

4、后台运行

nohup verdaccio --config 配置文件目录/config.yaml &

或者用pm2,更多命令参考pm2 官网

# 启动
pm2 start verdaccio

# 查看log
pm2 logs

# 查看启动列表
pm2 list

# 重启
pm2 restart all

# 停止
pm2 kill

5、使用

npm_install-16c1331c7b4bd69e473e02f27b9b9619.gif

web用户界面

image.png

用户相关

注册

# 添加用户(确保配置文件开启了允许注册)
# 依次按照窗口填写username、password、e-mail 回车提交数据即可
npm adduser --registry http://服务器ip:4000

登录

# 注册后,自动默认登录,登陆后npm会自动缓存,下次无需再次登录
npm login --registry http://服务器ip:4000

npm切换到私有仓库

# 将 npm 访问源设置为私库地址
npm config set registry http://服务器ip:4000

# 查看本机npm访问源
npm config get registry

或者用nrm维护源地址,很方便

查看源

image.png

添加源

nrm add sam http://192.168.3.181:4000/

切换源

image.png

发布npm包到私有库

# npm已经切换到私有库地址的可省略--registry参数
npm publish --registry http://服务器ip:4000