如何搭建本地的 NPM 私有仓库 Nexus

embedded/2024/10/22 16:22:58/

NPM 本地私有仓库,是在本地搭建NPM私有仓库,对公司级别的组件库进行管理。在日常开发中,经常会遇到抽象公共组件的场景,在项目内部进行公用。新的项目开始时,也会拷贝一份创建一个新的项目,这样做不易于管理,也没有进行有效的版本控制,组件升级之后,也很难对已有项目进行更新,最后个项目各自为政,各自维护,新开发功能不能共享。

公司的共用组件大多是公司内部资产,由于涉及到知识产权的问题,禁止发布到公网。所以,内部前端私有仓库非常有必要,开源的 NPM 私有仓库又很多选择,轻量级例如Verdaccio,我这里用的是 Nexus,Nexus 的优势是,它不仅支持 NPM 私有仓库,也支持 Maven 的私有仓库,这样前后端都可以用同一个系统去管理,减轻了运维的压力。

安装

使用 docker 进行安装,进入查看是否安装成功 http://localhost:8081/

docker run -d -p 8081:8081 --name nexus -v nexus-data:/nexus-data sonatype/nexus3## 查找 admin 密码
docker exec -ti nexus cat /opt/sonatype/sonatype-work/nexus3/admin.password

创建项目

下面我们添加一个项目进行测试

  1. 创建测试项目
mkdir test-module
cd test-module
npm init -y 

2 添加文件 index.js

function greet(name) {return `Hello, ${name}!`;
}module.exports = greet;
  1. 创建仓库
    输入名称,设置是否允许更新,这里设置的是允许重新发布。
    在这里插入图片描述
    设置 Security – Realms,激活 npm Bearer Token Realm
    在这里插入图片描述

  2. 提交新项目

设置 registry

npm config set registry http://nexus-server-url:8081/repository/localnpm/

登录并提交项目

npm login --registry=http://nexus-server-url:8081/repository/localnpm/
npm publish

检查项目是否上传成功

在这里插入图片描述

  1. 设置 repository group,由于本地仓库初始化时只有内部库,而开发项目时我们需要很多三方库,Nexus 支持缓存外部库。拉取时我们要指定 registry 为 repository group,这个group 包括两个本地仓库和代理仓库,本地库找不到,就去代理库找,添加代理仓库和仓库组。
    添加 npm proxy,设置taobao 镜像地址
    在这里插入图片描述
    添加仓库组:
    在这里插入图片描述
    设置registry 并测试
#设置registry,这样可以拉到本地库和远程三方库
npm config set registry http://nexus-server-url:8081/repository/npm-all/#发布时要指定为本地仓
npm publish --registry http://nexus-server-url:8081/repository/localnpm/

http://www.ppmy.cn/embedded/30629.html

相关文章

Redis---------实现短信登录业务

目录 基于Session的短信登录 ①首先看他的业务逻辑 ②进行代码逻辑处理 基于Redis的短信登录 ①首先看他的业务逻辑 ②进行代码逻辑处理 Controller: Service接口: Service实例: Mapper: 封装ThreadLocal线程的数据操作&#x…

最全 CSS 学习指南

文章导读:AI 辅助学习前端,包含入门、进阶、高级部分前端系列内容,当前是 CSS 的部分,瑶琴会持续更新,适合零基础的朋友,已有前端工作经验的可以不看,也可以当作基础知识回顾。 在上篇文章中&a…

最小K个数(力扣面试题17.14)

本文采用的是大堆排序求最小的K个值。需要有堆的数据结构基础哦。 代码展示: /*** Note: The returned array must be malloced, assume caller calls free().*/ void AdjustDown(int* parr,int n,int root)//向下调整 {int parentroot;int child parent*21;while…

k8s笔记 | Ingress

安装Ingress 添加helm创库 Installation Guide - Ingress-Nginx Controller Ingress | Kubernetes 下载包 将 文件helm 放到 /usr/local/bin/ 并给到执行权限 # 添加可执行权限 chmod ux helm # 测试是否能运行 helm version# 结果 version.BuildInfo{Version:"v3.14…

uniapp 监听APP切换前台、后台插件 Ba-Lifecycle

监听APP切换前台、后台 Ba-Lifecycle 简介(下载地址) Ba-Lifecycle 是一款uniapp监听APP切换前台、后台的插件,简单易用。 截图展示 也可关注博客,实时更新最新插件: uniapp 常用原生插件大全 使用方法 在 script…

NLP自然语言处理和应用场景介绍

【A】NLP(Natural Language Processing,自然语言处理)是计算机科学与人工智能领域的一个分支,旨在让机器能够理解、解释、生成人类语言。它涵盖了语言文本的语法、语义、语用、语境等方面的处理。 NLP的具体应用场景包括但不限于…

华为云耀云服务器开放端口

博客主页:花果山~程序猿-CSDN博客 关注我一起学习,一起进步,一起探索编程的无限可能吧!让我们一起努力,一起成长! 目录 一.华为云控制台开放端口 寻找到安全组信息 2. 添加开放的端口信息 3. 检查是否成…

基于深度学习检测恶意流量识别框架(80+特征/99%识别率)

基于深度学习检测恶意流量识别框架 目录 基于深度学习检测恶意流量识别框架简要示例a.检测攻击类别b.模型训练结果输出参数c.前端检测页面d.前端训练界面e.前端审计界面(后续更新了)f.前端自学习界面(自学习模式转换)f1.自学习模式…