【10分钟,手把手教你搭建一个npm私有库】

开始之前

这里我们选取nexus作为npm私有仓库的服务
nexus功能丰富,可以提供代理仓库、宿主仓库,除了做npm仓库,还可以做maven,pypi等仓库。

nexus - 概念
hosted:本地仓库,通常用来存放自己编写的包,我们自己发的包放这里。
proxy:代理仓库,一般用于代理远程第三方的公共仓库。
group:用于聚合管理,如果内部包括了 hosted 和 proxy。首先会从 hosted 取,若无则从 proxy 取并缓存,下次则会从缓存取。

部署

1,启动nexus服务

部署nexus,我们选取docker 在本地或云服务器上部署。

docker run -d -p 8081:8081 --name nexus -v ${your_local_data_path}/:/nexus-data sonatype/nexus3

${your_local_data_path} 换成本地的路径,比如:/Users/xx/software/nexus/data。

2,创建仓库

服务启动后访问 http://localhost:8081/#admin/repository/repositories 点击创建,然后选取npm(hosted),进行创建。
创建仓库
npm(hosted)

填写仓库信息

3,设置权限

3.1 创建角色

按下图依次填下,

创建角色

填写信息

这里我们先把权限选大一点,所有npm库的读写权限,当然你也可以根据自身需求,限制读写权限,限制特定npm库。
设置角色权限

3.2 创建用户

角色创建好后,则可以创建一个用户,然后赋予用户角色。
创建用户

按图所示依次填写,并赋予角色。

填用户信息并设置角色

3.3 设置仓库npm权限

这里加一下关于npm的权限 ,也很简单,根据提示 把npm Bearer Token Realm 加到active即可。
nexus官方原文:This authentication method requires the npm Bearer Token Realm. Simply add the realm to the active realms in the Realms section of the Security menu from the Administration menu to activate it as documented in Realms. (refs: https://help.sonatype.com/en/npm-security.html)
可拖拽到active

使用

发包

我们发到这个仓库里

这里我们提前准备一个packname为@company-a/common的包(文末有对应代码 )。
发包很简单,命令如下yarn publish --registry=http://127.0.0.1:8081/repository/my-npm-repo/ --new-version 1.0.0 common,然后输入刚刚创建的用户账号和密码。

指令

然后进入仓库查看,嗒哒!🎉 新包上传上来了 。

引包

最后我们在试下安装下这个新包。

假设我们有个业务应用目录为app1,进入到app1目录下,修改.npmrc文件,要把@company-a的registry地址改为搭建的仓库地址 http://localhost:8081/repository/my-npm-repo/;

cd app1 && vim .npmrc

registry=https://registry.npmjs.org
@company-a:registry=http://localhost:8081/repository/my-npm-repo/

然后执行 yarn add @company-a/common@1.0.3,如下图安装成功!

13.png


至此,搭建nexus作为npm私有库服务器,然后发包,引包的全流程演示完毕。

快速搭建一个属于团队或者自己的私有库服务,就是这么简单。祝大家都可以敏捷开发,一切顺利!

示例源码参考

https://github.com/Wunan777/my_node_module/tree/main/nexus_package_demo

标签: npm, nexus, 私有库

  • 9
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值