报错信息
使用命令npm run publish-lib发布包时提示
401 BASIC realm=“Sonatype Nexus Repository Manager
在网上搜索过后,得出的结论是权限验证没通过
解决方法
-
查看C盘用户目录下的.npmrc文件中的_authToken
// .npmrc registry=http://192.168.XXX.XXX:8081/XXX/ //192.168.X.XXX:8081/XXX1/:_authToken=NpmToken.1f6cacd2-510c-xxxx-xxxx-xxxxxxxx -
查看package.json文件的发布配置
// package.json "publishConfig": { "registry": "http://192.168.X.XXX:8081/XXX2/" }
-
比较两个文件,.npmrc中的需要有package.json配置地址下的_authToken
如果.npmrc中没有对应地址的_authToken,说明未在指定源中登录,需要登录
-
登录的话,首先使用nrm添加package.json中的镜像源,并切换至该镜像源
-
cmd中输入
npm login也可以不切换镜像源使用 --registry 命令
npm login --registry=192.168.X.XXX:8081/XXX2/
-
输入账号,密码,邮箱
-
登录后再次发布,即可成功
同时,.npmrc文件中也会多一条_authToken信息
//192.168.X.XXX:8081/XXX2/:_authToken=NpmToken.1f6cacd2-510c-xxxx-xxxx-xxxxxxxx
其他问题
- 如果没有账号,可以联系Nexus的管理员给你添加账号
- 也可以尝试清楚缓存:
npm cache clear --force