NPM ERR 代码 E401:无法验证,需要:承载授权

Gau*_*uja 23 node.js npm npm-install

我从 GitHub 下载了一个 NodeJS 应用程序,在执行 npm install 时遇到以下错误。

npm ERR! code E401
npm ERR! Unable to authenticate, need: Bearer authorization_uri=https://login.windows.net/c1156c2f-a3bb-4fc4-ac07-3eab96da8d10, Basic realm="https://pkgsprodeus21.pkgs.visualstudio.com/", TFS-Federated
Run Code Online (Sandbox Code Playgroud)

我的 Node 版本是 6.13.1,NPM 版本是 6.13.4 以下是 package.json 文件的内容:

{
  "name": "DemoApp",
  "version": "1.0.0",
  "description": "A social oasis for lovers of pizza.",
  "repository": "****",
  "main": "index.js",
  "scripts": {
    "start": "node index.js"
  },
  "author": "****",
  "license": "MIT",
  "dependencies": {
    "@hapi/boom": "7.4.2",
    "@hapi/catbox": "10.2.1",
    "@hapi/catbox-redis": "5.0.2",
    "@hapi/cookie": "10.1.0",
    "@hapi/good": "8.2.0",
    "@hapi/good-squeeze": "5.2.0",
    "@hapi/hapi": "18.3.1",
    "@hapi/inert": "5.2.1",
    "@hapi/joi": "15.1.0",
    "@hapi/vision": "5.5.2",
    "aws-sdk": "2.488.0",
    "bcryptjs": "2.4.3",
    "bootflat": "2.0.4",
    "fs-extra": "8.1.0",
    "handlebars": "4.1.2",
    "lodash": "4.17.13",
    "pg": "7.11.0",
    "sequelize": "5.9.4"
  }
}
Run Code Online (Sandbox Code Playgroud)

自昨天以来,我一直被困在这个问题上,但仍然没有找到解决方案的运气。任何帮助将不胜感激。

LCI*_*III 28

这对我有用。

首先,删除用户文件夹中的 .npmrc 文件。这个文件夹:

C:\Users\[your user name]
Run Code Online (Sandbox Code Playgroud)

然后在包含 .npmrc 文件的项目文件夹中运行此命令:

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

  • 同样的问题,这次使用“-F”。(是的,我用谷歌搜索并找到了我自己的评论,但后来没有意识到)。 (7认同)
  • 对于我们这些对“npm”了解较少的人来说,解释问题是什么以及为什么可以解决这个问题将是非常棒的 (7认同)
  • 我需要添加“-force”,然后它对我有用。 (4认同)
  • 不适用于 Linux(例如 Ubuntu):`vsts-npm-auth:Exec 格式错误` (2认同)

usa*_*don 23

如果升级到 npm v7 后获得带有私有 npm 注册表的 E401,请删除 package-lock.json 并重新安装。

.npmrc 中的注册表 url 设置需要与 package-lock.json 中的 http/https 协议完全匹配。

或者正如斯图尔特指出的那样:查找并替换以使用正确的 URL 更新现有的锁定文件


dhi*_*aka 15

使用npm install --registry https://registry.npmjs.org代替npm install

  • @James 检查 c:\users\<USER>\.npmrc 下的 .npmrc 文件 (3认同)

小智 14

为我工作:

  • 删除yarn.lock/package-lock.json文件
  • npm 安装


小智 6

无需删除 .npmrc 文件,以下对我有用

npm logout
Run Code Online (Sandbox Code Playgroud)

然后

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

  • 我在第二个命令的开头仍然需要“npx”,但这种方法对我有用! (4认同)

din*_*dhi 5

我也遇到了同样的问题,我的发现如下:

应用程序 node.js 版本是14.0 但我机器中的节点版本是16.0。我必须安装 14.0 版本的节点才能解决该问题。

要管理多个节点版本,强烈建议使用此工具。


小智 4

我遇到了完全相同的错误,结果发现这是个人访问令牌 (PAT) 的问题。更新您的 PAT 并运行vsts-npm-auth.

  • @marz Azure DevOps /用户设置/个人访问令牌中的“个人访问令牌” (2认同)