Verdaccio搭建Npm私有仓库

274 阅读2分钟

随着业务的不断发展,内部技术架构的不断壮大,为了优化技术架构,降低模块之间耦合度,分离公共库,搭建Npm私有仓库成为必然的选项。 ps:当然,镜像Npm包也是重要的原因之一。

本文将会使用 Docker 来部署,因此默认你已掌握 Docker 相关的知识。

Verdaccio

Verdaccio 是一个 Node.js创建的轻量的私有npm proxy registry。

安装

为了降低复杂度,将会使用 Docker Desktop 进行操作。

下载镜像

Docker Desktop 可直接搜索 Verdaccio,然后下载对应的版本就好。

Snipaste_2024-08-08_14-19-11.png

运行容器

直接点 run,然后填上对应的端口。

Snipaste_2024-08-08_14-19-48.png

访问

容器运行成功后,http://ip:{ip}:{port} 访问私有仓库的 Web 页面。

ps:如果是本地部署,没有修改端口,访问地址是,http://127.0.0.1:4873

Snipaste_2024-08-08_17-49-42.png

ps:因为没有截到图,此图为网图

配置

在此只会提到跟本文相关的配置,其他的根据自身实际情况配置。配置

ps:修改配置后需要重启才生效

离线发布

发布包的时候出现 503,可以修改此项

# https://verdaccio.org/docs/configuration#offline-publish
publish:
  allow_offline: true

上行链路

下载 npm 包的源地址,可根据自己的需求修改

uplinks:
  npmjs:
    url: https://registry.npmjs.org/

使用私有仓库

因为一些众所周知的原因,在使用 npm 的时候都会修改源,或者安装 cnpm。

nrm

在此推荐使用 nrm 来管理 npm 源,让你随心所欲,尽情尽兴。

安装

建议全局安装

npm install nrm -g

添加私有仓库

# nrm add [name] [url]
nrm add my http://127.0.0.1:4873

查看所有源

nrm ls

切换源

使用私有仓库

nrm use my

发布一个包

私有仓库的包跟 npm 包是一模一样的,因为是内部使用的,所以你可以更加肆无忌惮。

写个示例包

建一个目录

mkdir test-npm-package

初始化配置

npm init

新建一个 Javascript 文件

// index.js

module.exports = function() {
  console.log('Hello, npm package!');
};

新建一个 README.md 文件,对包进行描

上传包

注册私有仓库的账号

根据提示输入用户名,密码,邮箱

npm adduser
登录
npm login
发布
npm publish
更新版本

需要先更新版本号再上传

# 补丁 最后一个版本号
npm version patch

# 特性 第二位版本号
npm version minor

# 大版本 第一位版本号
npm version major

# 发布
npm publish
删除(弃用)
npm unpublish xxxx --force

使用包

发布成功后就能在 Web 上看到,在项目中也可以直接安装使用

npm install test-npm-package --save

Snipaste_2024-08-08_17-52-34.png

Snipaste_2024-08-08_17-52-41.png

后记

能看到这里的道友实属不易,自己动手体验一下吧

敬:开源的前辈!