使用npm安装@mui/icons-material时出现Socket timeout故障求助
问题:npm安装@mui/icons-material触发Socket超时错误
执行npm install @mui/icons-material时出现ERR_SOCKET_TIMEOUT错误,其他npm包可正常安装。已确认:
- 网络团队未限制npm仓库访问
- 所有Linux机器均出现此问题,Windows机器无异常
- 全新RHEL镜像部署node.js和npm后问题依旧
- 无代理配置,基础npm设置正常
关键错误日志片段:
245 verbose stack Error: Socket timeout 245 verbose stack at TLSSocket.onTimeout (/usr/local/lib/node_modules/npm/node_modules/agentkeepalive/lib/agent.js:346:23) 245 verbose stack at TLSSocket.emit (node:events:525:35) 245 verbose stack at Socket._onTimeout (node:net:570:8) 245 verbose stack at listOnTimeout (node:internal/timers:569:17) 245 verbose stack at process.processTimers (node:internal/timers:512:7) 250 error code ERR_SOCKET_TIMEOUT 251 error network Socket timeout
解决方案
快速修复方法
- 延长npm超时时间:给大文件下载预留足够时长
npm install @mui/icons-material --timeout=300000 - 切换国内镜像源:规避国际网络不稳定问题
npm install @mui/icons-material --registry=https://registry.npmmirror.com - 本地安装tar包:
- 获取对应版本的tar包:
@mui/icons-material@5.11.16 - 上传至Linux机器后执行本地安装:
npm install /path/to/icons-material-5.11.16.tgz
- 获取对应版本的tar包:
系统层面排查与修复
- 调整TCP keepalive参数:优化Linux网络连接稳定性
# 临时生效 sysctl -w net.ipv4.tcp_keepalive_time=600 sysctl -w net.ipv4.tcp_keepalive_intvl=60 sysctl -w net.ipv4.tcp_keepalive_probes=3 # 永久生效:编辑/etc/sysctl.conf添加上述配置,执行sysctl -p加载 - 测试仓库连通性:用curl验证tar包下载速度和可用性
curl -O https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.11.16.tgz -w "%{time_total}s\n" - 检查本地安全规则:确认防火墙、SELinux是否拦截npm的HTTPS请求
内容的提问来源于stack exchange,提问作者Jboncz
相关产品推荐
相关产品推荐

