执行npm install报E401认证错误 登录重置密码仍未解决
npm install 报 E401 鉴权错误修复方案
按优先级依次尝试以下操作,覆盖绝大多数该场景故障:
- 先校验当前npm源配置
执行命令查看当前生效的npm源:npm config get registry
再查看所有scope绑定的专属源配置:npm config list | grep registry
若返回的源地址是需要身份校验的私有源(企业自建源、第三方付费源等),你之前登录公网npm账号、重置公网账号密码的操作完全不生效,需要联系对应私有源的管理员更新你的访问凭证;如果不需要使用私有源,直接重置为官方公共源后重试即可。 - 清理损坏的本地凭证缓存
单纯重新登录无法覆盖损坏的旧凭证,需要手动清理:- 关闭所有终端、IDE中运行的npm相关进程
- 找到两个位置的
.npmrc配置文件:一个是用户根目录下的全局配置文件,一个是当前项目根目录下的项目级配置文件 - 打开两个文件,删除所有包含
_auth、_authToken、password字段的配置行,不要直接删除整个文件避免丢失其他自定义配置 - 若需要使用npm账号认证,重新执行
npm login完成登录流程即可
注意:如果你的npm账号开启了双因素认证,登录流程中需要输入正确的动态验证码,否则会登录失败但不弹出明确提示
- 校验依赖包访问权限
打开项目的package.json文件,检查所有依赖项,如果存在属于私有组织的scope包(包名格式为@组织名/包名),你当前登录的账号未被加入对应组织的访问白名单也会报401错误,联系对应包的管理员开通访问权限即可。 - 修复npm 8.x版本缓存异常
npm 8.13.2版本存在本地缓存异常导致鉴权校验失败的已知问题,执行以下命令清理缓存:npm cache clean --force
清理完成后删除项目目录下的node_modules文件夹和package-lock.json文件,重新执行npm install即可。 - 排查多版本node配置冲突
如果你使用nvm等node版本管理工具,不同node版本对应的npm全局配置路径互相独立,之前的登录操作可能是在其他node版本下执行的,当前版本读不到有效凭证。执行npm root -g查看当前版本的全局安装路径,确认对应路径下的.npmrc配置正确后,在当前npm版本下重新执行登录操作即可。
内容的提问来源于stack exchange,提问作者Sipos Péter
相关产品推荐
相关产品推荐

