Nexus搭建企业私有库

2023-10-27

需求背景

做私有库的工具有很多,如上一篇介绍的轻量级的npm包管理工具verdaccio。但刚好maven私服用的是nexus,所以最后选择了nexus来做npm的私服,和maven一套便于维护。

----------------nexus安装过程省略----------------

创建 repository

Nexus Repository Manager 3 可以用于多种类型的包管理。此处我们要搭建的是npm包管理私服。
登录在界面点击设置按钮,如下图所示。
在这里插入图片描述

进入设置界面,点击 Repository -> Repositories -> Create repository,接下来会进入到 Repositorty 的选择
在这里插入图片描述
在这里插入图片描述

npm 有三种选择:

  • **第一种:**代理 npm 仓库,将公共 npm 服务器的资源代理缓存,减少重复下载,加快开发人员和CI服务器的下载速度。创建时选择 npm(proxy) ,只需填写 Name 和 Remote storage (公有库域名)即可。

在这里插入图片描述

  • **第二种:**私有 npm 仓库,用于上传自己的npm包以及第三方npm包。同样的创建步骤,只不过选择的仓库类型为 npm(hosted)。 只填写 Name 即可

在这里插入图片描述

  • **第三种:**npm 仓库组,用于将多个内部或外部 npm 仓库统一为一个 npm 仓库。被添加到 npm 仓库组中的其他仓库内的包都能够通过该 npm 仓库组访问到。
    新建一个 npm仓库组将上面两个刚刚创建的 npm 仓库都添加进去。这样可以通过这个 npm 仓库组,既可以访问公有 npm 仓库又可以访问自己的私有 npm 仓库。
    与上面同样的创建步骤,只不过选择的仓库类型为 npm(group),起一个名字 Name,然后选择需要添加到组里的其他 npm 仓库。

在这里插入图片描述

验证是否可用

在 Repositories 中点击创建的 仓库。可以查看该仓库的 URL。
在这里插入图片描述

在项目目录下创建 .npmrc 文件。文件内容为:
registry=私有库包地址
然后随便安装一个包试试(–loglevel info:日志级别设置为 info),从打印的日志中可以发现确实是从设置的 npm 私服下载的包:
$ npm --loglevel info install react

发布到 npm 私服

除了从 npm 私有库安装依赖,我们还需要将公司内部的代码打包发布到私有库中,这里需要设置 Nexus Repository Manager 的权限,这样才能使用 npm login 认证登录到我们的私服。

  1. 添加权限认证:设置权限,左侧菜单 Security -> Realms 菜单,将 npm Bearer Token Realm 添加到右边

在这里插入图片描述

  1. 创建角色:创建 nx-deploy 角色,并赋于他 nx-repository-view---* 权限

在这里插入图片描述

  1. 创建用户:创建用户deployer,同时设定角色为 nx-deploy
  2. 全局登录:执行命令,提示填写账号密码和邮箱,验证通过后将会在用户主目录下的 .npmrc 文件中插入一条 此仓库 url 和对应的 token。
npm login --registry=私有库包地址
  1. 项目局部登录,在项目中的 .npmrc 文件配置
    _auth是 username:password 的 base64 值,这样设置的好处是 publish 时就不用 login 了
registry=私有库包地址
email=deployer@qq.com 
always-auth=true
_auth="ZGVwbG95ZXI6ZGVwbG95ZXI="
  1. **发布控件到 npm 私有库中:**在 package.json 配置,然后在包根目录执行 npm publish 即可。
"publishConfig" : {
	"registry" : "私有库 npm-hosted 包地址"
}

若不想在 package.json 配置,也可以在命令行指定,如下:

npm publish --registry=私有库 npm-hosted 包地址

错误解决

  1. 401无权限:
npm install
npm ERR! code E401
npm ERR! Unable to authenticate, need: BASIC realm="Sonatype Nexus Repository Manager"

解决办法:需要登录nexus,勾上 Administration – Secturity – Anonymous 中的 Allow anonymous users to access the server。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Nexus搭建企业私有库 的相关文章

随机推荐

  • 找回 macOS 10.12 Sierra 安全性与隐私的设置中

    2019独角兽企业重金招聘Python工程师标准 gt gt gt is damaged and can t be opened You should move it to the Trash 当你出现上述报错时 可以参照下面做法 不少用户
  • Keil或MDK编译报错error: L6050U:

    文章目录 摘要 安装步骤 问题描述 使用软件 下载安装包 解决方案 注意事项 总结 思考 更新日志 摘要 硬件环境 无特殊要求 软件环境 Win10 安装步骤 问题描述 MDK5 报错信息 error L6050U The code siz
  • Linux修改只读文件权限

    我们在修改一些配置文件时经常会遇到文件是只读的 修改之后无法保存修改的问题 我们可以使用 chmod 命令来修改文件 夹 属性 sudo chmod 777 file name 所有用户对这个文件 夹 都有读写权限 sudo chmod 6
  • 2020DCIC智慧海洋建设算法赛学习03-特征工程

    序 特征工程往往是算法比赛中最至关重要的一环 一个好的特征工程能够让你的分数有大幅的提升 而如何做好特征工程 从哪些方面入手构建特征就需要经验积累和学习TOP选手的优秀方案 通过学习TOP选手开源代码的特征工程部分 我们可以发现 对于智慧海
  • 【JAVA】递归与迭代:选择正确的方法来解决问题

    文章目录 递归概念 代码示例 计算阶乘 斐波那契数列 遍历文件系统目录 总结 递归概念 递归是一种方法或算法 在该方法中 函数通过调用自身来解决问题 在递归中 问题被划分为更小的同类子问题 并不断地递归调用函数来解决这些子问题 直到达到终止
  • 探究HTTP常见请求头:从基础到进阶

    探究HTTP常见请求头 从基础到进阶 文章目录 探究HTTP常见请求头 从基础到进阶 1 介绍 什么是HTTP请求头 请求头的作用 2 常见请求头详解 User Agent Accept Language Referer Content T
  • 学习SpringMvc第三战-利用SpringMvc实现CRUD

    目录 一 前期环境搭建 1 替换pom xml的内容 2 导入配置文件 小编上传资源 3 修改xml文件 4 点击创建自动生成代码 5 写一个类用于处理页面跳转 二 正式启动SpringMVC的CRUD 1 建立接口 调用自动生成的接口 2
  • AB测试中如何给样本分组?

    目录 什么是AB测试 什么叫样本相似 为什么要样本相似 怎么实现样本相似 随机化 Randomization 再随机化 Rerandomization 协方差适应随机化 Covariance Adaptive Randomization 更
  • 虚拟串口工具_com0com

    因为这年头 都 2012 年了 应该没什么人有在用 Serial port 串行端口 串口 说 Serial port 大家可能想不起来 但说 COM port 大家应该就知道是什么一回事了吧 就是那个从前在计算机后方一定有的 DB9 插头
  • C++11与最小垃圾回收

    C 11新标准为了做到最小的垃圾回收支持 首先对 安全 的指针进行了定义 安全派生的指针是指向由new分配的对象或其子对象的指针 安全派生指针的操作包括 1 在解引用基础上的引用 比如 p 2 定义明确的指针操作 比如p 1 3 定义明确的
  • oracle的stored outline的创建与维护

    author skate time 2011 09 17 执行计划的稳定 如何确定哪些sql的执行计划不稳定 如何固定执行计划 执行计划直接影响app的性能 有的时候执行计划固定是很有用的 有很多因素影响执行计划的不稳定 像optimize
  • Evaluating Fuzz Testing

    1 介绍 信息量太大回头再写 一天后更新 不想写了差不多就下面这些内容吧 2 背景 2 1 fuzzing流程 fuzzing的核心算法 initSeedCorpus 初始化新的输入 isDone 决定fuzzing是否停止 choose
  • 一个程序来比较cuda/c在GPU/CPU的运行效率

    在网上看了一个比较GPU和CPU执行矩阵运算效率的帖子 亲自跑了一下 这是一个CUDA语言程序 请保存为 文件名 cu 我的主机配置如下 CPU G2030 内存8GB 显卡 GTX750ti 代码如下所示 include cuda run
  • Arduino for ESP8266&ESP32适用库ESPAsyncWebServer:WebSocket和EventSource

    文章目录 目的 WebSocket 使用方法 使用演示 更多说明 EventSource 使用方法 使用演示 更多说明 总结 目的 WebSocket和EventSource是HTML5开始提供的功能 WebSocket可以在单个TCP连接
  • oracle数据库-按多个字段排序

    应用场景 如果我们按多列排序且有升序和降序的时候的写法 排序时 有两个关键字 asc 表示升序 desc 表示降序 所以我们在order by 后面添加 asc desc select s bank code s account id s
  • MIME type备忘

    MIME type 是给文件管理器用的 包括桌面 也是文件管理器的一个展现形式 所以桌面的程序 有后缀名 就会自动变成某种图标 然后双击或者右键选打开方式就可以以某个定义好的程序打开 desktop文件可以包含MimeType applic
  • 学习一下 PDF417 条码

    PDF417条码 Portable Data File 便携式数据文件 是一种线性堆叠式的二维码 因为这个特性 在识读上 可以采用线性扫描的产品比如 激光扫描枪 CCD之类的条码阅读器读取 但实际操作效果不如影像式产品来的速度更快 PDF4
  • 【AI+医疗】AI在医疗影像设备工作周期中的应用探索

    导读 随着人工智能技术的飞速发展 越来越多的领域开始与人工智能技术深度融合 产生了一种新型的技术模式 AI AI 是指将人工智能技术与其他领域的技术或应用进行结合 在提高效率 精度和创新能力的同时 也为人工智能技术的发展提供了更多的应用场景
  • 基于LCD1602的躲闪类小游戏(使用STM32,平台Proteus,Keil,STM32cube)

    基于LCD1602的躲闪类小游戏 使用STM32 平台Proteus Keil STM32cube 这是我的 通信接口与技术 期末设计的一部分 花了一些时间终于做完啦 这个地方主要涉及到的是LCD1602的使用部分 B站游戏演示视频链接 演
  • Nexus搭建企业私有库

    需求背景 做私有库的工具有很多 如上一篇介绍的轻量级的npm包管理工具verdaccio 但刚好maven私服用的是nexus 所以最后选择了nexus来做npm的私服 和maven一套便于维护 nexus安装过程省略 创建 reposit