npm 错误 E401:无法进行身份验证,需要:BASIC realm="Sonatype Nexus Repository Manager"

Rah*_*ole 15 node.js npm npm-install

我将 node 版本升级到 12.16.2,将 npm 版本升级到 6.14.4。之后我无法运行npm install,因为我收到此错误

 code E401
 npm ERR! Unable to authenticate, need: BASIC realm="Sonatype Nexus Repository Manager"
Run Code Online (Sandbox Code Playgroud)

我什至尝试删除 node_modules 和 package-lock.json 并再次运行 npm install,但没有任何改变。

小智 34

我有类似的问题。我通过添加_auth到我的~/.npmrc. 请参阅文档如何对您的 Nexus 凭证进行编码。我使用添加了编码凭据npm config set _auth xxx

您将无法使用npm config list或查看该值npm config get _auth


Ahm*_*ınç 18

就我而言,问题是我在同一个 Nexus 中输入了另一个注册表地址来执行npm login命令。

npm login --registry=http://nexus_url:port/repository/wrong_address
Run Code Online (Sandbox Code Playgroud)

通过登录正确的地址解决了我的问题:

npm login --registry=http://nexus_url:port/repository/correct_address
Run Code Online (Sandbox Code Playgroud)


小智 16

您可以删除 package-lock.json ..它对我有用

  • 这是最安全的选择。它对我也有用。 (5认同)

小智 13

对我有用的是:

我删除了 C/users/ 文件夹下的 .npmrc 文件。并运行 npx vsts-npm-auth -config .npmrc 命令在 users 文件夹中创建一个新文件

  • 正如目前所写的,您的答案尚不清楚。请[编辑]添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。您可以[在帮助中心](/help/how-to-answer)找到有关如何写出好的答案的更多信息。 (3认同)

小智 13

  1. 删除了文件夹.npmrc下的文件C/users/
  2. npm set registry=http....
  3. npm set _auth=(login:pass in base64):

  • 正如目前所写的,您的答案尚不清楚。请[编辑]添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。您可以[在帮助中心](/help/how-to-answer)找到有关如何写出好的答案的更多信息。 (3认同)

Tyr*_*ste 7

vsts-npm-auth -config .npmrc -F
Run Code Online (Sandbox Code Playgroud)

是我找到的唯一解决方案;

确保npm install -g vsts-npm-auth之前运行

  • 这是不同的,因为 -g 是全局安装包,而不是本地安装包 (2认同)

Rah*_*ole 6

我找到了出路。通过这个新的 npm 版本,他们强制执行身份验证来访问某些包。我们意识到我们不需要对我们下载的任何包使用身份验证,因此我们不需要身份验证代码。所以我们只是删除了它,一切都正常了。

  • 如果你的意思是来自 .npmrc 的 _authToken 一行,它也对我有用 (2认同)

小智 5

我从帖子中运行 set 的命令,并在 nexus“活动领域”配置文件“npm Bearer Token Realm”中添加。链接: https: //help.sonatype.com/repomanager3/system-configuration/access-control/realms 我的问题解决了。