场景:

执行npm install时提示Unable to authenticate

Password:
Email: (this IS public) xx@qq.com
Logged in as uploader on http://192.168.xx.xxx:8074/repository/npm-internal/.
PS D:\GitworkspaceUi\gisquest-cloud-ui-workcenter> npm install
npm ERR! code E401
npm ERR! Unable to authenticate, need: BASIC realm=”Sonatype Nexus Repository Manager”

npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\Administrator\AppData\Roaming\npm-cache\_logs\2023-01-04T06_05_27_843Z-debug.log
PS D:\GitworkspaceUi\gisquest-cloud-ui-workcenter>

问题原因:

执行npm install到仓库拉取代码时需要认证,现在是认证不通过,因此报错

现象:

浏览器直接访问仓库,然后使用公司给的账号和密码登录是正常的,说明账号密码是正确的

http://192.168.xx.xxx:8074/repository/npm-internal/.

解决方法:

先执行npm config list,找到.npmrc的位置

PS D:\GitworkspaceUi\gisquest-cloud-ui-workcenter> npm config list
; cli configs
metrics-registry = “http://192.168.xxx.xxx:8073/repository/npm-all/”
scope = “”
user-agent = “npm/6.14.12 node/v14.16.1 win32 x64”

; userconfig C:\Users\Administrator\.npmrc

方法一(网上的仅供参考):

打开后大概如下效果

删掉第二行

//192.168.xx.xx:8073/repository/npm-all/:_authToken=NpmToken.1ee55b58-d164-3b43-a731-xxxxxx

重新执行登录

npmlogin–registry=http://192.168.xx.xxx:8073/repository/npm-internal/

方法二:直接删掉.npmrc

npmconfigsetregistryhttp://192.168.xx.xxxx:8073/repository/npm-all/

npmconfigset//192.168.xx.xxx:8073/repository/npm-all/:_authToken=NpmToken.1ee55b58-d164-3b43-a731-xxxxx

说明:上面第一条命令是注册仓库的位置,第二条是仓库的的认证token

这里的token是从同事(他那里是正常).npmrc文件中复制过来的

然后执行npm install正常了