使用Verdaccio搭建私有NPM库
私有NPM库
在日常的工作中,随着业务需求越来越多,可复用的代码组件也会越来越多,基本每个团队都会遇到企业私有库的问题。代码放在企业私有库上既方便管理,在后续的开发迭代中也能提升开发效率。最初呢 我们是采用统一的gitLab库存放可复用的组件,在通过webpack中配置应用地址指向组件在gitLab的位置地址,并安装。但是这种方式的弊端很多,其中当时影响我们正常打包的问题也是出在这里,当NPM升级后,运维进行项目部署时,会用最新版的NPM,这就导致了我们在项目中使用的大量基础组件下载报错。项目出现问题。
为了解决这个问题,同时将两个部门的前端封装的组件共享,决定使用Verdaccio这个工具去进行搭建前端的私有库。
什么是Verdaccio
Verdaccio 是一个 Node.js创建的轻量的私有npm proxy registry
如何使用
在我们使用之前需要清楚 Verdaccio
应在什么环境下可以使用:
我们强烈建议使用最新版本的Node包管理工具,比如> npm@6.x | yarn@1.x | | yarn@2.x | pnpm@6.x。 不再支持npm@5.x或更低版本。
- 安装、启动
可以在全局进行安装
npm install -g verdaccio
或者 yarn global add verdaccio
安装之后 在终端中输入 verdaccio
即可启动项目;
到这里我们将私有库简单的搭建好了,接下来 我们可以访问启动命令后输出的本地路径
- 修改配置
从官网的文档上我们可以知道,在verdaccio
的默认配置和我们在真正生产上用到的还是不一样的。我们需要对默认的verdaccio
配置做一下修改
在修改之前我们需要知道在生产环境下,私有的NPM库应具有哪些功能
- 支持对npm包的搜索
- 权限把控,仅允许公司内部员工使用,并且员工还需要注册
我们需要深入了解以下几个API的含义
storage
已发布的包的存储位置,默认存储在 ~/.config/Verdaccio/ 文件夹下
plugins
插件所在的目录
web 界面相关的配置
auth
用户相关,例如注册、鉴权插件(默认使用的是 htpasswd)
uplinks
用于提供对外部包的访问,例如访问 npm、cnpm 对应的源
packages
用于配置发布包、删除包、查看包的权限
server
私有库服务端相关的配置
middlewares
中间件相关配置,默认会引入 auit
中间件,来支持 npm audit
命令
logs
终端输出的信息的配置
3、解决方式
权限把控指的是我们需要私有 npm 库上发布的包只能团队成员查看,除此之外人员不能看到一切信息。那么,回到 Verdaccio,我们需要:
限制 npm 包的查看,只能为已注册的用户; 禁止用户注册(在团队成员已注册完成后)
相应地,这里我们需要修改配置文件的 pacakges 和 auth。前面我们也提及了 packages 是用于配置发布包、查看包、删除包相关的权限。我们先再来看看默认的配置:默认配置中的参数all
是任何人都可以访问,我们需要将它设置为有权限的人才可以访问。
修改之后的配置
设置好 packages 后,我们还得更改 auth 的值
通过上面的英文我们可以了解到,我们如果不设置max_users
的话,注册用户是没有限制的,也就是说,当部署到外网环境后,任何人都可以通过添加用户的命令注册用户。当我们将max_users
设置为-1 就设置为了禁用注册用户。当想要设置注册用户的话,就可以将max_users
的值设置为大于0的值
基本使用
1、首先我们注册一个用户
npm adduser --registry http://localhost:4873/
2、为了在后续的使用更方便,我们可以设置添加源
npm i -g nrm
可以为nrm添加自定义源
nrm add lyrnpm http://localhostm:4873/
当添加完成后,可通过以下命令进行查看所有源
nrm ls
3、发布
npm publish
上述的过程中我们就把简单的私有库创建好了,但是verdaccio
还有其他的更深入的东西值得我们去探索。后续会继续更新组件的发布过程。
本文来自博客园,作者:前端加油站,转载请注明原文链接:https://www.cnblogs.com/bllx/p/16526850.html