• nexus搭建npm依赖私库


    nexus搭建npm依赖私库

    npm仓库介绍
    3.2.1.默认仓库说明
    npm-proxy:可以代理npmjs和淘宝镜像
    
    npm-hosted:用于上传、自定义和个人开发的npm组件
    
    npm-public:仓库分组,把几个仓库组组合在一起使用。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    3.2.1.仓库类型
    Group:这是一个仓库聚合的概念,用户仓库地址选择Group的地址,即可访问Group中配置的,用于方便开发人员自己设定的仓库。maven-public就是一个Group类型的仓库,内部设置了多个仓库,访问顺序取决于配置顺序,3.x默Releases,Snapshots, Central,当然你也可以自己设置。
    
    Hosted:私有仓库,内部项目的发布仓库,专门用来存储我们自己生成的jar文件
    
    3rd party:未发布到公网的第三方jar (3.x去除了)
    
    Snapshots:本地项目的快照仓库
    
    Releases: 本地项目发布的正式版本
    
    Proxy:代理类型,从远程中央仓库中寻找数据的仓库(可以点击对应的仓库的Configuration页签下Remote Storage属性的值即被代理的远程仓库的路径),如可配置阿里云maven仓库
    
    Central:中央仓库
    
    Apache Snapshots:Apache专用快照仓库(3.x去除了)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    点击左侧菜单栏Repositories,我们可以看到很多已经配置好的仓库,一般只使用开源jar就够用了,如果需要建立自定义仓库,点击Create repository创建新的仓库

    image-20220625102228976

    首先我们要创建几个常用的代理源,用于常用开源npm模块的拉取。

    骤依次添加以下代理源
    taobao

    https://registry.npm.taobao.org/
    
    • 1

    NPM-npmjs

    https://registry.npmjs.org
    
    • 1

    image-20220625102550522

    添加代理(Cache统一设置为200天 288000)

    image-20220625103107523

    设置maven-public

    将这些代理加入Group,最好将默认的maven库放到最底下,这里可以忽略

    image-20220625103345057

    创建npm-hosted ,用于发布个人开发的npm组件。

    image-20220625103500354

    image-20220625103511792

    image-20220625103657035

    创建npm-public ,用于把几个仓库组组合在一起公开连接使用。

    image-20220625103749496

    image-20220625103758746

    image-20220625104126308

    修改本地Npm连接源

    注释:这个是我个人的私服地址,请大家以实际情况进行更改

    http://192.168.2.202:8081/
    
    • 1
    打开Repositories

    找到创建的分组npm-public,点击Copy,复制连接源地址

    image-20220625104745361

    在本地运行以下命令,修改npm仓库源
    npm config set registry http://192.168.2.202:8081/repository/npm-public/
    
    • 1

    image-20220625105711891

    发布自己的npm组件到私服

    登录私服

    复制自己的私服地址
    image-20220625110823536

    在本地命令控制台,输入以下命令,登录私服
    npm login –registry=http://192.168.2.202:8081/repository/npm-hosted/
    
    • 1

    image-20220625111225670

    发布npm组件

    要发布的模块,必须保证在根目录下有package.json文件,否则会报错。

    npm  publish –registry=http://192.168.2.202:8081/repository/npm-hosted/
    
    • 1
    发布报错
    可能是因为我登陆的库是组,不是开发库所以上传报错,从新登陆
    
    npm login –registry=http://192.168.2.202:8081/repository/npm-hosted/
    
    • 1
    • 2
    • 3
    npm ERR! code E401
    npm ERR! Unable to authenticate, need: BASIC realm="Sonatype Nexus Repository Manager"
    
    npm ERR! A complete log of this run can be found in:
    
    • 1
    • 2
    • 3
    • 4

    image-20220625132409278

    解决办法
    终端里输入 npm config list 来获取npm的配置
    
    找到userconfig一项
    
    打开 .npmrc文件。
    
    一般在最后一项。
    
    把所有的私有仓库的地址和NpmToken删除,然后重新yarn或者npm install即可。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    缓存依赖包

    点击仓库右边的copy按钮复制源地址,然后在本地环境中设置该源地址,npm config set registry=http://xx/repository/group-npm/,切换后执行npm i,install成功后,在nexus的代理仓库中即可看到项目的缓存

    image-20220625133651742

    1. 发布
    • 登陆
      通过npm login --registry=xx(注意是本地仓库地址)
    • 发布
      通过npm publish --registry=xx(注意是本地仓库地址)

    image-20220625141230013

    push成功后,我们就可以在hosted仓库看到我们刚刚提交的包啦~

    image-20220625141257047

    • 注意事项
    1. push失败的话,需要在nexus realms中激活npm bearer token

    image-20220625141332489

    免去登陆

    经常发布的小伙伴可通过npm config edit修改config文件,将以下代码复制到config文件中,免去登陆

    registry=http://xx/repository/npm-all/
    save-prefix=~
    always-auth=true
    _auth=YWRtaW46MTIzMTIz
    email=admin@example.org
    
    • 1
    • 2
    • 3
    • 4
    • 5
    1. 以上_auth=后面是密码的base64编码,可新建a文本执行certutil /encode a.txt b.txt输出到b文本,复制b文本的内功即可,也可以通过网上的在线工具实现啦~

    ll/
    save-prefix=~
    always-auth=true
    _auth=YWRtaW46MTIzMTIz
    email=admin@example.org

    
    1. 以上_auth=后面是密码的base64编码,可新建a文本执行`certutil /encode a.txt b.txt`输出到b文本,复制b文本的内功即可,也可以通过网上的在线工具实现啦~
    
    以上就是nexus3搭建npm私库的全部内容啦,最重要的是自己亲手实践哈,实践的过程中遇到问题学会思考和面向百度就能不断成长啦~🌝
    
    • 1
    • 2
    • 3
    • 4
  • 相关阅读:
    windows环境下搭建redis5.x集群
    在UniApp的H5项目中,生成二维码和扫描二维码的操作处理
    ROS 开源项目 TurtleBot3 安装与使用
    电影售票系统遇到的问题
    我们是否生活在一个超大型生物的大脑之中?——对多元宇宙观与生命存在形式的哲学探讨
    Python基于随机游走模型的PageRank算法及应用
    mobaxterm使用
    learning to rank 学习排名系统综述
    办公软件入门--word01
    C++基础知识:挂分小技巧
  • 原文地址:https://blog.csdn.net/tianmingqing0806/article/details/125459003