我正在尝试使用 Yarn 从私有 Azure DevOps 注册表安装包。我已按如下方式配置了 .yarnrc.yml 文件:
npmScopes:
mycompany:
npmRegistryServer: https://pkgs.dev.azure.com/mycompany/_packaging/myproject/npm/registry/
npmAlwaysAuth: true
npmAuthToken: <my-auth-token>
当我尝试添加包时:
yarn add @mycompany/mypackage
我收到以下错误:
➤ YN0027: @mycompany/mypackage@unknown can't be resolved to a satisfying range
➤ YN0041: Invalid authentication (as an unknown user)
➤ Errors happened when preparing the environment required to run this command.
使用以下 .npmrc 配置,该设置可以与 npm 配合使用:
registry=https://pkgs.dev.azure.com/mycompany/_packaging/myproject/npm/registry/
always-auth=true
; begin auth token
//pkgs.dev.azure.com/mycompany/_packaging/myproject/npm/registry/:username=mycompany
//pkgs.dev.azure.com/mycompany/_packaging/myproject/npm/registry/:_password=[ACCESS_TOKEN]
//pkgs.dev.azure.com/mycompany/_packaging/myproject/npm/registry/:email=[EMAIL]
//pkgs.dev.azure.com/mycompany/_packaging/myproject/npm/:username=mycompany
//pkgs.dev.azure.com/mycompany/_packaging/myproject/npm/:_password=[ACCESS_TOKEN]
//pkgs.dev.azure.com/mycompany/_packaging/myproject/npm/:email=[EMAIL]
; end auth token
纱线版本3.6.4 npm 版本 10.8.1 节点版本 18.20.3
验证包名称:我检查了注册表中是否存在包@mycompany/mypackage。
已检查身份验证令牌:确认 npmAuthToken 正确且具有必要的权限。
手动配置:尝试使用以下命令手动设置注册表和身份验证令牌:
我测试了相同的
.yarnrc.yml
文件示例并重现了相同的问题。
要解决此问题,您可以更改为使用
npmAuthIdent
文件中的 .yarnrc.yml
。
这是一个例子:
npmScopes:
mycompany:
npmRegistryServer: https://pkgs.dev.azure.com/mycompany/_packaging/myproject/npm/registry/
npmAlwaysAuth: true
npmAuthIdent: ANY_USERNAME:MY_TOKEN_AS_BASE64
注意: 您需要将
username:PAT
转换为base64格式并输入到npmAuthIdent
字段。
更详细的信息,您可以参考这个github票证:Azure构件身份验证