一、问题描述
今天在Jenkins上发布项目时,遇到一个报错:
error Error: unable to get local issuer certificate
at TLSSocket.onConnectSecure (node:_tls_wrap:1535:34)
at TLSSocket.emit (node:events:513:28)
at TLSSocket._finishInit (node:_tls_wrap:949:8)
at TLSWrap.ssl.onhandshakedone (node:_tls_wrap:730:12)
报错信息显示,Yarn在下载包时遇到了一些问题。通常,这是由于以下原因之一导致的:
(1)网络问题:您的网络连接可能不稳定或被防火墙阻止。
(2)包源不可用:您配置的包源可能不可用,或者正在维护中。
(3)证书问题:Yarn可能无法验证包源的SSL证书。
二、解决方案
(1)检查网络连接
首先,确保您的网络连接正常。尝试访问其他网站,确保您可以正常访问互联网。
如果您使用的是公司网络,请检查防火墙设置。有时,防火墙可能会阻止Yarn下载包。您可以尝试使用其他网络,例如移动热点,以验证是否是防火墙导致的问题。
(2)检查包源
您可以尝试切换到其他可用的包源。例如,您可以使用淘宝镜像作为包源。在命令行中运行以下命令:
yarn config set registry https://registry.npmmirror.com
将包源切换到淘宝镜像,通常可以解决包源不可用的问题。
(3) 证书问题
如果Yarn无法验证包源的SSL证书,您可以尝试跳过证书验证。请注意,这是不安全的,因为它会绕过SSL证书的验证过程。
在命令行中运行以下命令:
yarn config set "strict-ssl" false -g
这将关闭SSL证书验证。然而,请注意,这可能会导致安全风险,因此仅在了解风险并且确定包源是可信的情况下使用。