随着业务的不断发展,内部技术架构的不断壮大,为了优化技术架构,降低模块之间耦合度,分离公共库,搭建Npm私有仓库成为必然的选项。
ps:当然,镜像Npm包也是重要的原因之一。
本文将会使用 Docker 来部署,因此默认你已掌握 Docker 相关的知识。
Verdaccio
Verdaccio 是一个 Node.js创建的轻量的私有npm proxy registry。
安装
为了降低复杂度,将会使用 Docker Desktop 进行操作。
下载镜像
Docker Desktop 可直接搜索 Verdaccio,然后下载对应的版本就好。
运行容器
直接点 run,然后填上对应的端口。
访问
容器运行成功后,http:// i p : {ip}: ip:{port} 访问私有仓库的 Web 页面。
ps:如果是本地部署,没有修改端口,访问地址是,http://127.0.0.1:4873
配置
在此只会提到跟本文相关的配置,其他的根据自身实际情况配置。配置
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
后记
能看到这里的道友实属不易,自己动手体验一下吧
敬:开源的前辈!