Cou*_*eyH 45 azure node.js npm azure-devops
我正在尝试连接到 Azure DevOps Artifacts 源,但我不断收到 E401 错误。
我在另一台电脑上试过,它连接得很好。我已经卸载并重新安装了我的 Node.js,但仍然出现错误。
下面是我运行“npm install”时得到的错误
npm ERR! code E401
npm ERR! Unable to authenticate, need: Bearer authorization_uri=https://login.windows.net/*********, Basic realm="https://pkgsprodcus1.pkgs.visualstudio.com/", TFS-Federated
Run Code Online (Sandbox Code Playgroud)
下面是添加到 .npmrc 文件中的内容
registry=https://[org].pkgs.visualstudio.com/_packaging/[feed].Npm/npm/registry
//pkgs.dev.azure.com/[org]/_packaging/[feed].Npm/npm/registry/:_authToken=[token]
//pkgs.dev.azure.com/[org]/_packaging/[feed].Npm/npm/:_authToken=[token]
Run Code Online (Sandbox Code Playgroud)
我希望在将我的信息添加到 .npmrc 文件并运行“npm install”后连接到提要
Sim*_*ugh 65
我遇到了无法连接的问题,即使我在同一台机器上拥有与其他存储库相同的 .npmrc。运行vsts-npm-auth -config .npmrc
刚刚退出,大概对缓存的凭据感到满意。
然而,它的凭据似乎很糟糕。解决方案是强制刷新令牌:
vsts-npm-auth -config .npmrc -force
小智 19
这通常发生在您最近更改密码时。为了解决这个问题,我在 VS Code 的 Powershell 终端中运行了这个命令(任何终端都可以工作)
vsts-npm-auth -config .npmrc
Run Code Online (Sandbox Code Playgroud)
这样做后,会弹出一个 GUI,我可以在其中选择我想用来进行身份验证的帐户。
我希望这有帮助!
当微软更新将 VSTS 的名称更改为 Azure DevOps 时,他们也更改了许多 URL。大多数旧的仍然重定向,但看起来.npmrc
上面的文件不匹配。更改第一行中的 URI以匹配其他行,如下所示:
registry=https://pkgs.dev.azure.com/[org]/_packaging/[feed].Npm/npm/registry
Run Code Online (Sandbox Code Playgroud)
那应该解锁你。
请注意,如果您在同一个文件中同时拥有注册表和凭据,并且该文件正在提交给源代码管理,则您还将凭据保存到源代码管理。这里的最佳实践是保留.npmrc
在你的项目根目录中,只有第一行,告诉 npm 连接到哪个注册表。然后,创建一个新文件~/.npmrc
(如果您使用的是 Windows,您可以使用 git bash 帮助将其放在正确的位置)并添加另外两行,即带有您的凭据的行。这将使您的凭据保持在您的机器本地,并且可以安全地提交带有注册表注释的文件。
此外,请记住,您从 Azure 包注册表生成的凭据最多可使用 90 天,因此在某些时候您将再次收到未经授权的错误消息,您需要更新本地~/.npmrc
文件中的凭据。
我刚刚在 Azure DevOps 门户中遇到了这个问题:
我的一位同事无法连接。事实证明,%40Local
如果您在浏览器中复制提要 URL,就像我在 MS Teams 上共享它时所做的那样,Azure DevOps 门户会在提要名称后插入文本。
我的门户显示的内容:
; begin auth token
//pkgs.dev.azure.com/<company>/_packaging/<feed>/npm/registry/:username=xxx
//pkgs.dev.azure.com/<company>/_packaging/<feed>/npm/registry/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//pkgs.dev.azure.com/<company>/_packaging/<feed>/npm/registry/:email=npm requires email to be set but doesn't use the value
//pkgs.dev.azure.com/<company>/_packaging/<feed>/npm/:username=xxx
//pkgs.dev.azure.com/<company>/_packaging/<feed>/npm/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//pkgs.dev.azure.com/<company>/_packaging/<feed>/npm/:email=npm requires email to be set but doesn't use the value
; end auth token
Run Code Online (Sandbox Code Playgroud)
他的门户网站显示的内容:
; begin auth token
//pkgs.dev.azure.com/<company>/_packaging/<feed>%40Local/npm/registry/:username=xxx
//pkgs.dev.azure.com/<company>/_packaging/<feed>%40Local/npm/registry/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//pkgs.dev.azure.com/<company>/_packaging/<feed>%40Local/npm/registry/:email=npm requires email to be set but doesn't use the value
//pkgs.dev.azure.com/<company>/_packaging/<feed>%40Local/npm/:username=xxx
//pkgs.dev.azure.com/<company>/_packaging/<feed>%40Local/npm/:_password=[BASE64_ENCODED_PERSONAL_ACCESS_TOKEN]
//pkgs.dev.azure.com/<company>/_packaging/<feed>%40Local/npm/:email=npm requires email to be set but doesn't use the value
; end auth token
Run Code Online (Sandbox Code Playgroud)
这导致与项目中的存储库 URL 不匹配 .npmrc
修复它:确保 URL 正确并且在用户.npmrc
和项目中匹配.npmrc