关于npm:npm-ERR-network-timeout

94次阅读

共计 1374 个字符,预计需要花费 4 分钟才能阅读完成。

问题

有一次批改了几行简略的代码,而后把分支合并到 develop,再主动触发 gitlab 的 ci。
但过了一会看日志,发现报错了。npm ERR! network timeout…

具体如下图所示:

初步剖析

看提醒是说从源拉取依赖的时候,网络超时了。
初步判定是网络问题,所以想着一会再重试看看。
后果重试了好几次,后果都一样。

因为批改的性能须要在开发环境验证后,再部署到测试环境给测试验证,而后部署到预公布环境,所以还是比拟焦急的。

人是否成长,就看在应答突发紧急问题,导致停顿被卡,是否沉稳沉着解决问题。
但往往说起来容易做起来难。
我感觉能够这样:
在心里本人跟本人说几遍,从当初开始,给本人五分钟工夫,什么都别想,从头到尾再认真看看,找出问题所在。

因为之前公布和部署是没问题,而当初重试了几次还是不行。
我也问了后盾同时机器的网络等问题,说也没改变什么。
而我又没开明登录机器的权限,所以只能网上好好找找了。

各种说法

1 npm set strict-ssl false

设置代理:

npm config set proxy http://proxy.example.com:3128npm config set https-proxy http://proxy.example.com:3128

设置证书:

npm config set cafile "<path to certificate file>"

但我这边看过了,源站的 https 证书是没问题的,也没过期。

而且我这边曾经设置了 npm config set strict-ssl false,也不必设置什么 proxy 代理,也没有什么 cafile。

所以该办法不实用。

2 npm config set strict-ssl false

npm install npm -g --ca=""// or npm config set ca""

这里 ca 的形式倒是能够试试,因为只是清空,而不像下面第一种办法那样,须要用到证书文件。
我这边批改后重试了 ci,后果还是一样。
所以该办法不实用。

3 后盾在 curl 源站地址的时候,提醒证书问题

如下图所示:

这个可能是 curl 只认 CA 证书,因为源站是 Let’s Encrypt 证书,所以可在 curl 加上 –insecure 来验证源站。
所以问题仍然不是源站证书问题。

4 npm –without-ssl –insecure install

但查看了 npm 官网,install 是没有这两个参数的。

问题找到了

剖析问题的时候,工夫始终在走,紧张感又来了。
此时能够强制本人去喝杯水或洗把脸,再回来从头再来。

当关上 node 官网的时候,无心中看到有 2 个版本,如下图所示:

而 ci 配置文件中,node 用的是最新版 image: node:latest。
所以感觉是版本问题。

而后让后盾同时帮忙查看了下 node 和 npm 版本,发现版本和我本地的不一样。
服务器上是最新版,而我本地是 LTS。

服务器上的版本是:

我本地的版本是:

既然感觉是版本问题,那就疾速的验证看看。
就是把 node 指定 LTS 版本 (image: node:12.16.1),而后再跑 ci 测试下。

后果胜利了。
如下图所示:

总结

  • 从容沉着的心态很重要
  • 剖析问题须要认真细致,不放过任何蛛丝马迹
  • 平时的也要多学习,不必局限特定领域。前端、后端等,都能够多学学

最初

  • 公众号《毛毛虫的小小蜡笔》

有疑难和问题,请留言。

如果感觉文章还能够,请点赞或珍藏,谢谢。

正文完
 0