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

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/

相关推荐
kyriewen111 分钟前
Next.js:让你的React应用从“裸奔”到“穿衣服”
开发语言·前端·javascript·react.js·设计模式·ecmascript
MXN_小南学前端2 分钟前
基于 Vue3 + ECharts 的数据大屏实例(提供gitHub仓库地址)
前端·javascript·echarts
宁雨桥9 分钟前
for of,for in以及传统for循环的区别与不同场景下的使用选择
前端·javascript
椰羊~王小美38 分钟前
除了前端 JS 配置的国际化,对于 JS 没覆盖到的文本,怎么实现国际化
前端·javascript·状态模式
AC赳赳老秦1 小时前
DBA 专属方案:用 OpenClaw 实现 SQL 语句优化、慢查询分析、数据库备份巡检全自动化
服务器·前端·数据库·ffmpeg·自动化·deepseek·openclaw
燐妤1 小时前
前端HTML编程1:初识html
前端·html5
xiaoye37081 小时前
java接口文档工具 swagger2和swagger3对比
java·服务器·前端
tongyiixiaohuang1 小时前
基于轻易云的数据集成,实现企业系统间灵活对接
java·前端·数据库
哥本哈士奇1 小时前
Power BI学习笔记第17篇:Power BI Dashboard 常用布局方案推荐
前端·powerbi
军军君011 小时前
数字孪生监控大屏实战模板:固体颗粒物监管平台
前端·javascript·vue.js·typescript·前端框架·echarts·less