nexus npm 私服填坑记录

599 阅读1分钟
  1. 发布私有包到npm私有仓库时报以下错误:
npm ERR! code E401
npm ERR! Unable to authenticate, need: BASIC realm="Sonatype Nexus Repository Manager"

排除了以下可能性:

  • 信息输入错误
  • 服务器权限等配置错误

私有库地址如下 http://192.168.1.*:8081/repository/npm-hosted/

把最后的斜杠去掉,变成

http://192.168.1.*:8081/repository/npm-hosted

即发布成功。 原因分析:有斜杠时nexus指向的仓库不再是 npm-hosted,且找不到相关仓库授权信息,所以返回无权限。

  1. 授权问题

image.png

nx-repository-admin-npm-<仓库名>-edit:应该是 UI admin 权限,即从浏览器中登录管理界面的编辑权限

nx-repository-view-npm-<仓库名>-edit:应该是客户端访问权限,即从命令控制台执行相关访问指令的编辑权限

因前者带 admin ,容易误以为是包含所有的最高权限,所以不再去分配 view 相关的权限,其实这两者的权限是分开的,并不重叠。

所以发包权限需要增加后者的相关权限