解决 npm ERR! code UNABLE_TO_GET_ISSUER_CERT_LOCALLY

npm ERR! code UNABLE_TO_GET_ISSUER_CERT_LOCALLY 错误通常与证书问题相关,特别是在网络环境(如公司防火墙或代理)中,NPM 无法验证证书的可信性

以下是解决该问题的几种方法:

1. 临时忽略 SSL 验证

如果你只是临时使用 NPM,可以通过关闭 SSL 验证来解决:

npm config set strict-ssl false 

注意:此方法仅适用于非生产环境,可能降低安全性,建议在解决问题后恢复为 true

npm config set strict-ssl true

使用自定义证书

如果你在公司网络内工作,可能需要添加公司的自签名证书到 NPM 信任的证书列表。

  1. 获取公司代理或防火墙的根证书文件(通常是 .crt 文件)。
  2. 将证书路径添加到 NPM 配置中:
npm config set cafile "/path/to/your/certificate.crt" 

  npm config set cafile "/etc/ssl/certs/my-company-root-ca.crt"


3. 更改注册表 URL 为非 HTTPS

你可以尝试将 NPM 的默认注册表改为 HTTP(非 HTTPS),以绕过证书验证:

npm config set registry http://registry.npmjs.org/ 

然后重新尝试运行你的 npm install

注意:非 HTTPS 注册表可能会带来一定的安全风险,因此建议尽量解决证书问题。


4. 清除 NPM 缓存

如果之前的证书配置或缓存导致问题,可以尝试清理 NPM 缓存:

npm cache clean --force 

然后重新运行安装命令。


5. 检查 Node.js 和 NPM 的版本

旧版本的 Node.js 和 NPM 可能存在兼容性问题,导致 SSL 验证失败。请确保你使用的是最新版本:

  1. 检查当前版本:

    node -v npm -v 
  2. 更新 Node.js(使用 Node Version Manager):

    nvm install node 
  3. 更新 NPM:

    npm install -g npm 

6. 检查代理配置

如果你在代理环境下工作,确保代理配置正确:

  1. 设置代理:

    npm config set proxy http://your-proxy-url:port npm config set https-proxy http://your-proxy-url:port 
  2. 如果你不确定是否需要代理,可以先清除代理配置:

    npm config delete proxy npm config delete https-proxy 

7. 切换网络环境

如果上述方法都无法解决,可能是当前网络(例如公司防火墙)限制了 NPM 的 SSL 证书验证。尝试切换到其他网络(如手机热点)重新安装依赖。


验证问题是否解决

完成配置后,测试是否解决问题:

npm install

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

livepy

老码农,赋闲在家要吃饭

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值