手账正文
npm ping 正常,安装还是超时?查真正下载的地址
终端里 npm ping 返回正常,npm install 却还是卡住。原因可能很简单:前者只检查了配置仓库的一项服务,后者还会去其他地址拿东西。
先在出问题的同一个环境里查
编辑器终端、外部终端和容器,可能使用不同变量。进入原项目,先查看实际仓库:
npm config get registry
再核对项目与个人配置中的代理、排除名单,以及客户端端口。查看配置时可能出现带凭据的地址,只在本机阅读,别直接贴到公开聊天里。
安装可能不只访问这一个仓库
项目可能有单独配置的作用域仓库;锁文件可能记录具体下载地址;部分依赖来自 Git;安装脚本还可能另行下载程序或资源。
因此,要从错误日志找到真正超时的那条请求。只测试仓库首页,解释不了另一个下载站为什么失败。
对照包名和版本,别拿最新版替旧项目作判断
确认失败的是哪个包、哪个版本,以及它在锁文件中的来源。先查看,不要为了“刷新地址”就删除锁文件,否则还可能同时改变依赖版本,增加新问题。
Git 依赖需要结合 Git 自己的连接设置;脚本下载则要查对应工具的代理支持,npm 配置不一定包办所有过程。
按错误继续处理,不用先清空一切
找不到域名查解析,连接代理失败查入口,证书失败查信任设置,权限失败查仓库访问资格。不要把关闭 strict-ssl 当成通用办法。
求助时提供包名、版本、失败阶段和脱敏日志。清缓存、重装软件之前,先确定真正请求了哪个地址,往往更快。
评论