Mac连接Azure Artifacts执行npm install报401如何配置.npmrc
Mac 环境连接 Azure Artifacts 执行 npm install 报401错误的解决方案
先清理无效旧配置
- 同时检查两个位置的.npmrc文件:项目根目录下的
.npmrc、用户根目录下的~/.npmrc,删除所有和Azure Artifacts源相关的过期_authToken、旧auth配置,避免残留配置优先级覆盖新配置。 - 卸载之前安装的
better-vsts-npm-auth,该工具未适配新版Azure DevOps的鉴权链路,生成的token大概率无效。
按规范配置两层.npmrc
Azure Artifacts 要求项目级、用户级两个.npmrc配合使用,配置错误是401错误的最常见诱因:
- 项目根目录的
.npmrc仅配置源地址,不要写入token信息,必须开启always-auth配置,参考格式:
registry=https://<你的组织名>.pkgs.visualstudio.com/<你的项目名>/_packaging/<你的源名称>/npm/registry/ always-auth=true
Mac环境下npm默认不会在请求私有源时自动携带凭据,缺少
always-auth=true配置会直接触发鉴权失败。
- 所有鉴权凭据统一存放在用户目录的
~/.npmrc中,不要把token提交到项目代码仓库。
用官方链路生成有效鉴权token
不要使用第三方认证工具,直接通过Azure CLI生成凭据,兼容性最高:
- 安装Azure CLI后,终端执行
az login,在弹出的浏览器窗口中完成账号登录,确认登录账号对目标Artifacts源拥有至少「协作者」权限,访客权限无法拉取包。 - 安装Azure DevOps扩展:执行命令
az extension add --name azure-devops - 执行凭据写入命令,替换成你自己的源地址:
az artifacts npm login --registry https://<你的组织名>.pkgs.visualstudio.com/<你的项目名>/_packaging/<你的源名称>/npm/registry/
- 命令执行完成后,检查
~/.npmrc已经自动写入对应源的_authToken配置,回到项目目录重新执行npm install即可。
剩余问题排查
如果完成以上操作还是报Bearer鉴权错误,逐一排查以下点:
- 本地npm版本如果是9.x,存在Mac端Azure Artifacts鉴权兼容bug,降级到npm 8.x版本后重新走认证流程。
- 临时关闭系统代理、终端代理,部分代理会篡改请求的Authorization头,抹掉token信息导致鉴权失败。
- 核对源地址拼写,Azure Artifacts分组织级源、项目级源,地址拼接错误时即使token有效也会返回401。
内容的提问来源于stack exchange,提问作者si Hwang
相关产品推荐
相关产品推荐

