使用verdaccio搭建npm私有仓库

摘要:
maven包管理的私有服务工具nexus构建了一个私有仓库:storage://data/verbaccio/storage#存储位置插件:/data/verbaccio/htpasswd#身份验证文件位置上行链路:https://registry.npm.taobao.org/#让verdaccio使用淘宝的npm图片地址收听:$pm2startverdaccioo查看流程:

https://verdaccio.org/docs/en/configuration#authentification
使用verdaccio搭建npm私有仓库第1张
verdaccio私有仓库

背景

使用verdaccio搭建npm私有仓库第2张
verdaccio
业务需求,会有许多公司内部开发的私有包,这些包希望可以统一管理,方便开发和使用,此时就需要一个内部的仓库来保存这些包。使用内部仓库还有一个好处,就是速度快,自己搭建npm 服务器,本身可以自带常用package的缓存, cnpm有一些包存在路径问题,而npm 的速度有些感人,自建的服务器会缓存下载过的包,能节省时间。
仓库对比:
maven包管理的私服工具nexus搭建私有仓库:方式功能强大,但更偏向后台使用,前端不太适合
阿里的cnpm搭建npm私有仓库:这个是阿里自己内部也在使用的,挺好用,不过需要安装MySQL数据库,而且配置比较麻烦
sinopia搭建npm私有仓库:这个使用比较简单,而且不用配置数据库,但是这个github项目很久没有维护了
verdaccio来搭建npm私有仓库:这个github项目是sinopia的分支,所谓青出于蓝胜于蓝,查阅相关资料后对比,决定使用此仓库

verdaccio 安装

安装比较简单,使用npm全局安装即可。

$ npm install -g verdaccio --unsafe-perm

安装完成后,默认配置文件位置在~/.config/verdaccio/config.yaml
修改配置文件:

storage: /data/verdaccio/storage        #存储位置
plugins: /data/verdaccio/plugins
web:
  title: Verdaccio
auth:
  htpasswd:
    file: /data/verdaccio/htpasswd      #认证文件位置
uplinks:
  npmjs:
    url: https://registry.npm.taobao.org/   #让verdaccio使用 淘宝的npm镜像地址
listen: 0.0.0.0:4873    #配置监听地址及端口
verdaccio 启动

使用pm2来管理verdaccio的启动和关闭。
安装pm2:

$ npm install -g pm2 --unsafe-perm

使用pm2启动verdaccio:

$ pm2 start verdaccio

查看进程:
使用verdaccio搭建npm私有仓库第3张
verdaccio已经在启动了。
通过http://ip:4873访问,既可以看到本文开始的verdaccio页面。

使用verdaccio仓库

发布npm包到私有仓库

发布npm包之前必须先注册账号:

$ npm adduser --registry  http://xxx:4873
# 输入npm账号用户名、密码和邮箱,如下:
Username: npmtest
Password: 
Email: (this IS public) npmtest@npmtest
Logged in as npmtest on http://xxx:4873/.

输出Logged in as npmtest on http://xxx:4873/.,表示npm账号npmtest成功登录到http://xxx:4873/私有仓库了。
发布npm包:

$ npm publish --registry http://xxx:4873

发布成功后在浏览器刷新http://xxx:4873就可以看到我们发布的私有包。

使用npm仓库的私有包

下载我们发布到私有仓库的npm包时,只需要修改仓库地址即可,具体操作如下:

$ npm set registry http://xxx:4873

在执行这条命令以后,再使用npm install xxx命令就会优先去我们自己的私有仓库下载npm包,如果没有找到,则会从npm中央仓库下载,npm中央仓库我们再配置文件中配置的淘宝地址,所以下载速度也是很快的。

后记

使用verdaccio搭建npm私有仓库第4张
verdaccio
verdaccio私有仓库在作者公司已经使用了半年多了,至今没有出现过什么问题,还是很推荐大家使用的。也欢迎大家多提意见,共同学习!

免责声明:文章转载自《使用verdaccio搭建npm私有仓库》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇windows环境下为php打开ssh2扩展Matlab 2016b 正式版下载下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Delphi跨进程间消息通讯

多个不同进程之间的消息传递有多种方式,但若传递的信息量不大,借用WINDOW的消息机制不失为一种简易有效的方法, 01. 注意 PostMessage  与 SendMessage 之间的异同;   PostMessage: 异步消息模式,负责向指定的句柄发送消息,不等待结果直接返回;         一般适用于进程内的信息传递处理;(如多个不同线程向主线...

鲜为人知的maven标签解说

目录 localRepository interactiveMode offline pluginGroups proxies servers使用方法 mirrors profiles 使用场景 出现位置 激活方式 maven是一个项目构建和管理的工具,提供了帮助管理 构建、文档、报告、依赖、scms、发布、分发的方法。可以方便的编译代码...

centos7配置国内yum源

文章目录 1、什么是yum仓库? 2、yum仓库配置 2.1、阿里镜像仓库配置 2.1.1、配置步骤 2.1.2、epel源 安装和配置 2.1.3、查看yum源 2.2、配置 清华大学镜像仓库 1、什么是yum仓库? yum仓库就是使用yum命令下载软件的镜像地址。 我们通常使用 yum install 命令来在线安装 linu...

Opentelemetry Collector的配置和使用

Collector的配置和使用 目录 Collector的配置和使用 Collector配置 Receivers Processors Exporters Service Extensions 使用环境变量 Collector的使用 部署到Kubernetes 部署Prometheus operator 使用Makefile 配置OpenT...

github学习之旅(四)—— 工作区、暂存区、仓库区

一、Git 工作流程 Git 是一个开源的分布式版本控制系统,自然就是为了记录我们的文件变更,它的工作流程如下,我们在本地(workspace)的更改,可以提交到暂存区(Index),提交到暂存区之后,我们可以继续在本地做变更,再提交到暂存区,最后等我们觉得合适了,再一次性提交到版本库(Repository),这时也就被Git跟踪起来了,也就是一个个的历史...

Maven:版本管理 【SNAPSHOT】【Release】【maven-release-plugin】【nexus】

什么是版本管理 首先,这里说的版本管理(version management)不是指版本控制(version control),但是本文假设你拥有基本的版本控制的知识,了解subversion的基本用法。版本管理中说得版本是指构件(artifact)的版本,而非源码的版本(如subversion中常见的rXXX,或者git中一次提交都有个sha1的comm...