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/