第七章、npm私有库搭建

12/2/2020 tag4

# 使用verdaccio搭建私有npm仓库

# 当前npm 私有仓库有以下包:

私有仓库地址 (opens new window)

包名 说明 备注
@common/xx-common-element-web-code 基于webpack的单页面web app 版本v0.1.4
@common/xx-common-util 通用js工具类 版本v1.2.3
@common/xx-js-to-native js与native通信 版本v1.0.3
@common/xx-common-ui 基于uView UI,适配不同终端的解决方案 版本v1.0.8
@common/xx-common-ui-next 基于uView UI,适配不同终端的解决方案(vue3.x) 版本v1.0.4

# 一、为何选择

选择背景:

  • 1.使用cnpmjs.org,这个要搭建数据库,较麻烦。

  • 2.Sinopia多年未更新,Verdaccio是基于Sinopia重构的,注入了更多活力

  • 3.Verdaccio是一个零配置的私有的带缓存功能的npm包管理工具

这里简单使用verdaccio (opens new window)

# 二、工作原理

Image text

# 三、安装流程

Image text

# 四、环境搭建

node + npm + verdaccio + pm2 + nrm
1

1.安装:npm install -g verdaccio

2.verdaccio配置: 全局安装verdaccio的目录在node下面,/lib/node_modules/verdaccio,我们要修改的配置在~/.config/verdaccio/config.yaml,这个文件其实是复制刚才的全局安装下的config文件夹下的default.yaml的。

3.启动verdaccio:

4.浏览器打开: (http://localhost:4873/)

  • 可借助工具pm2来进行管理
npm install -g pm2 // pm2安装
pm2 start which verdaccio // 启动verdaccio
pm2 stop which verdaccio // 停止服务
pm2 show verdaccio // 查看verdaccio进程实时日志
1
2
3
4

5.nrm管理镜像:

npm install -g nrm  // 安装nrm
nrm ls  // 查看镜像列表
nrm add xxx "your address" // 添加账号
npm adduser --registry http://xxxxx // 注册账号
nrm use xxx      //  使用npm源
1
2
3
4
5

# 五、有何价值

  • 1.安全性角度考虑:如果我们想要一个公共组件库,那么把组件放到我们私有库中,只有内网可以访问,这样可以避免组件中业务的泄露;
  • 2.模块复用性角度考虑:多个项目之间有重复的共有模块,当需要修改模块,通过简单的统一的配置就可以实现;提炼后的组件有专门的地址可以用来查看,方便使用,在后期项目的引用中也能节约开发成本
  • 3.npm包下载速度角度考虑:使用内部的地址,能够在开发下载node包的同时,将关联的依赖包缓存到verdaccio服务器中,下载速度更快;
  • 4.项目开发中的路径角度考虑:在项目开发中书写代码更整洁简练,不需书写更长的相对路径;
  • 5.公司技术沉淀角度考虑:知识的沉淀,在公司业务相关的应用上尤佳;
  • 6.版本角度的考虑:相当于一个容器,统一管理需要的包,保持版本的唯一;
  • 7.开发效率角度考虑:使私有公共业务或组件模块能以共有包一样的管理组织方式,保持一致性,提高开发效率;

# 六、使用规则

  • 1.在git上新建一个私有仓库组common-xx,本质是为了避免和外来node包冲突
  • 2.然后再在common-xx中新建私有项目,比如xx-common-element-web-code
  • 3.版本问题【尽可能兼容低版本,未兼容部分,需要告知为什么不能实现】
  • 4.限制发布者权限、对common-xx中的项目进行命名审核,以及更新迭代代码的审核
  • 5.所有的发布私有包,必须走git流程,不能私底下违规发布
  • 6.还在完善中……

# 七、实战截图

如下图: Image text

  • 2、git clone 上面的git地址,并进行utils私有库项目的开发

如下图: Image text

  • 3、npm publish

如下图: Image text

  • 4、npm unpublish xxx --force (切记:不要顺便删除线上的包)

如下图: Image text

  • 5、站点展示

如下图: Image text

  • 6、食用:npm i common-xx

如下图: Image text

  • 7、storage 放在那里的?

1)、命令行中输入:verdaccio , Image text 2)、找到config file 中/Users/sweet/.config/verdaccio/config.yaml

3)、vim 打开 config.yaml, 部署的文件放在:'/Users/sweet/.local/share/verdaccio/storage' Image text

# 推荐的官方文档

verdaccio搭建npm简单实践 (opens new window)

基于verdaccio的npm私有仓库搭建和使用总结 (opens new window)

npm私有库服务搭建及规范定制 (opens new window)

Verdaccio 搭建私有 NPM (opens new window)

使用verdaccio搭建私有npm (opens new window)

炒菜式手把手教学:基本的memorepo项目npm发包流程 (opens new window)

Last Updated: 6/10/2022, 9:21:56 AM