4

我正在尝试将范围包发布到私有 azure devops 工件提要。我按照这里的说明进行操作。我有一个项目 .npmrc 包含以下条目:

@my-scope:registry=https://pkgs.dev.azure.com/my-org/_packaging/my-feed/npm/registry/
@my-scope:always-auth=true

在我的全局用户 .npmrc 中,我有以下条目:

prefix=/usr/local
strict-ssl=false
unsafe-perm=true
//registry.npmjs.org/:_authToken="my-real-token"
//pkgs.dev.azure.com/my-org/_packaging/my-feed/npm/registry/:username=${NPM_USERNAME}
//pkgs.dev.azure.com/my-org/_packaging/my-feed/npm registry/:_password="my-real-base64-token"
//pkgs.dev.azure.com/my-org/_packaging/my-feed/npm/registry/:email=${NPM_EMAIL}
//pkgs.dev.azure.com/my-org/_packaging/my-feed/npm/registry/:always-auth=true
@my-scope:registry=https://pkgs.dev.azure.com/my-org/_packaging/my-feed/npm/registry/
//pkgs.dev.azure.com/my-org/_packaging/my-feed/npm registry/:_authToken="my-real-base64-token"
cafile=${NPM_CERT_LOCATION}

当我尝试时: npm publish 我收到以下错误:

Unable to authenticate, need: Bearer authorization_uri=https://login.windows.net/some-guid, Basic realm="https://pkgsprodcus1.pkgs.visualstudio.com/", TFS-Federated

根据以前的帖子,我发现我可能需要进行 npm 登录。执行 npm login 给我这个错误:

npm verb node v6.9.2
npm verb npm  v6.8.0
npm ERR! code E400
npm ERR! 400 Bad Request - PUT https://pkgs.dev.azure.com/my-org/_packaging/my-feed/npm/registry/-/user/org.couchdb.user:my-username

我看着这个似乎是相关的。然而,他们都没有工作。我试过: curl 和 curl -u 这给了我以下错误:

{"$id":"1","innerException":null,"message":"TF400813: Resource not available for anonymous access. Client authentication required.","typeName":"Microsoft.TeamFoundation.Framework.Server.UnauthorizedRequestException, Microsoft.TeamFoundation.Framework.Server","typeKey":"UnauthorizedRequestException","errorCode":0,"eventId":3000}%

我也尝试过使用代理和证书。但是,结果相同。

4

1 回答 1

2

这有点老了,不确定你是否仍然卡住,但对于 Windows,你可以使用这个 npm 包https://www.npmjs.com/package/vsts-npm-auth::

npm install -g vsts-npm-auth
vsts-npm-auth -config path-to-your\.npmrc

下面是 Azure DevOps 的一篇更完整的文章,它将引导您完成设置、.npmrc 和身份验证以及发布:https ://docs.microsoft.com/en-us/azure/devops/artifacts/npm/npmrc?view=azure- devops&tabs=windows

如果您在 Linux 或 Mac 上开发,则不支持 vsts-npm-auth,我们建议您以以下方式为您的 $HOME/.npmrc 生成令牌 Connect to feed 对话框会生成一个格式适当的令牌,您可以将其放入您的 .npmrc 文件的有效期为 90 天。

  1. 在 Azure Artifacts 中,选择连接到源。
  2. 选择 npm。
  3. 选择生成 npm 凭据。复制凭据以手动将它们添加到您的用户 .npmrc 文件中。对于 Windows,它位于 %USERPROFILE%.npmrc 中,如果上述方法不起作用,它会很有用。对于 Linux,它位于 $HOME/.npmrc 中。
于 2019-05-24T04:35:07.620 回答