执行yarn install时遭遇401 Unauthorized授权错误排查求助
执行yarn install时出现以下报错:
[1/5] Validating package.json... [2/5] Resolving packages... [3/5] Fetching packages... error Error: http://-----------.int:8080/tfs/-------/_packaging/Node-Packages/npm/registry/@dnd-kit/sortable/-/sortable-7.0.2.tgz: Request failed "401 Unauthorized"
已尝试操作:
- 更新
.npmrc中的Azure令牌 - 清除Yarn缓存
- 卸载重装Yarn
- 团队其他成员使用相同
.npmrc和Yarn配置无此问题
当前.npmrc配置:
engine-strict = true registry=https://---------------.int/tfs/--------/_packaging/Node-Packages/npm/registry/ always-auth=true strict-ssl=false ; begin auth token //--------.int/tfs/------/_packaging/Node-Packages/npm/registry/:username=-------- //---------.int/tfs/-------/_packaging/Node-Packages/npm/registry/:_password= {Base64 encoded token} //sourcecontrol.sandhills.int/tfs/--------/_packaging/Node-Packages/npm/registry/:email=npm requires email to be set but doesn't use the value //--------.int/tfs/---------/_packaging/Node-Packages/npm/:username=----------- //---------.int/tfs/--------/_packaging/Node-Packages/npm/:_password= {Base64 encoded token} //----------.int/tfs/---------/_packaging/Node-Packages/npm/:email=npm requires email to be set but doesn't use the value ; end auth token
排查步骤
检查URL协议一致性
报错请求用的是http://,但.npmrc中registry配置的是https://,协议不匹配可能导致认证失效。尝试将registry改为http://(带8080端口),或确认私有源是否支持HTTPS、本地是否有代理强制转换协议。验证令牌Base64编码正确性
确保令牌是正确的Base64编码(无换行、无多余空格),可重新生成替换:echo -n "你的Azure PAT令牌" | base64注意去掉
.npmrc中_password值的花括号{}。确认账号权限
- 检查你的Azure DevOps账号对
Node-PackagesFeed是否有读取权限,可登录后台查看Feed权限设置。 - 生成令牌时需勾选
Packaging (Read)权限范围,无此权限会导致401。
- 检查你的Azure DevOps账号对
清理全局.npmrc冲突
全局.npmrc(如~/.npmrc或C:\Users\<用户名>\.npmrc)可能覆盖项目配置,执行以下命令查看所有生效配置:npm config list --show-origin若有冲突,暂时重命名全局
.npmrc后重试安装。强制Yarn重载配置
执行以下命令重置Yarn配置并清理缓存:yarn config delete registry yarn config set registry https://---------------.int/tfs/--------/_packaging/Node-Packages/npm/registry/ yarn cache clean --all之后重新运行
yarn install。排查网络/代理问题
- 确认本地代理未拦截请求,或代理需单独配置认证。
- 用curl直接测试请求,判断是权限还是工具问题:
若curl也返回401,说明是令牌或权限问题;若能正常下载,排查Yarn配置或缓存。curl -u 任意用户名:你的AzurePAT http://-----------.int:8080/tfs/-------/_packaging/Node-Packages/npm/registry/@dnd-kit/sortable/-/sortable-7.0.2.tgz
内容的提问来源于stack exchange,提问作者gtighe
相关产品推荐
相关产品推荐

