nexus3搭建npm私有仓库

1,357 阅读1分钟

nexus3搭建npm私有仓库

环境:

OS: windows 10
jdk: 1.8.0_202
nexus: nexus-3.32.0-03-win64

前言

Nexus Repository Manager 3(简称nexus3),是一款具有通用格式支持的免费存储库管理器。

nexus3支持存储和发布Maven/Java, npm, NuGet, Helm, Docker, P2, OBR, APT, GO, R, Conan等组件。

本文以nodejs的npm管理为例,介绍如何使用nexus3搭建npm私有仓库。

1. 安装与运行

需要jdk 1.8及以上

下载地址:www.sonatype.com/products/re…

在bin目录执行nexus /run即可启动nexus3

浏览器输入http://localhost:8081即可方案,默认账号为admin,默认密码为admin123(或sonatype-work\nexus3\admin.password中的密码)

$ nexus --help
Usage: nexus.exe /install | /uninstall | /stop | /start | /status | /run | /run-redirect

/install:安装
/uninstall:卸载
/stop:停止后台运行
/start:后台运行
/status:查看运行状态
/run:前台运行
/run-redirect

2. 配置npm私服

npm私服有三种类型:

  • hosted : 本地存储,即同 docker 官方仓库一样提供本地私服功能
  • proxy : 提供代理其他仓库的类型,如 docker 中央仓库
  • group : 组类型,实质作用是组合多个仓库为一个地址

2.1 创建blob存储

为其创建一个单独的存储空间。

2.2 创建hosted类型的npm

npm(proxy)可以设置远程代理,npm(group)可以组合不同的npm仓库,这里不过过多介绍。

  • Name 名称,这里叫做npm-hosted。

  • Online 勾选,可以设置这个仓库是在线还是离线。

  • Storang Blob store:选择此仓库使用的Blob存储,这里选择之前创建的npm-blob。 Strict Content Type Validation:验证上传内容格式,这里就用默认的勾选。

  • Hosted Deployment Policy:部署策略,有三个选项,分别是: Allow Redeploy:允许重新部署 Disable Redeploy:禁止重新部署 Read-Only:只读

这里使用默认的"Disable Redeploy",如果是开发环境,可以选择"Allow Redeploy"。

  • Cleanup Cleanup Policies:清除策略,这个是新增的功能,这里先不进行设置。

3. npm发布软件

  • 设置npm仓库路径
$ npm config set registry http://127.0.0.1:8081/repository/npm-hosted/

$ npm config get registry
http://127.0.0.1:8081/repository/npm-hosted/
  • 设置publish密码 输入账号、密码、email
$ npm login
Logged in as admin on http://127.0.0.1:8081/repository/npm-hosted/.
  • 在需要发布的软件根目录下执行发布
$ npm publish

问题:

npm ERR! code E401
npm ERR! Unable to authenticate, need: BASIC realm="Sonatype Nexus Repository Manager"

解决:

npm nexus的 Realms设置,把npm Bearer Token Reaim放入Active中,并保存

4. 验证使用

npm install ms --registry=http://127.0.0.1:8081/repository/npm-hosted/