npm从6升级到7失败,提示使用过期数据及UNABLE_TO_GET_ISSUER_CERT_LOCALLY如何解决
问题核心原因
你遇到的问题由两个因素叠加导致:
- 当前本地安装的npm版本为6.13.0,该版本发布时间远早于Node.js 16,兼容列表中没有Node.js 16,因此会弹出版本不兼容警告,也无法正确识别
latest标签对应的npm 7+版本,只会拉取它支持范围内的最新版本。 - npm官方切换为强制HTTPS访问后,你的本地环境触发了SSL证书校验失败,拉取registry最新数据失败,只能使用本地缓存的过期数据,进一步导致无法获取最新npm版本。
解决方案
方案一:临时关闭证书校验完成npm升级
- 先临时关闭npm的严格SSL校验,跳过证书验证拉取最新包:
npm set strict-ssl false - 执行npm全局升级命令:
npm install -g npm@latest - 升级完成后立即重新开启SSL校验,避免后续安装第三方包时出现安全风险:
npm set strict-ssl true - 执行
npm -v验证升级结果,确认npm版本为7+即可。
方案二:通过nvm重装Node.js恢复配套npm版本
nvm安装Node.js时会默认携带对应版本适配的npm,无需手动调整配置,操作更简单:
- 卸载当前已安装的Node.js 16.2.0:
nvm uninstall 16.2.0 - 重新安装同版本Node.js,nvm会自动安装适配的npm版本:
nvm install 16.2.0 - 安装完成后自动切换到该版本,执行
npm -v验证即可。
内容的提问来源于stack exchange,提问作者Andy Ray
相关产品推荐
相关产品推荐

