npm 期待 JSON。代理却返回了 HTML 页面。
registry 解析失败可能是代理登录页或错误页造成的可见结果。在替换包元数据或清除缓存之前,先检查响应。
提到意外 HTML 的 npm 错误值得逐字阅读。这个响应可能是一个代理登录页,而不是损坏的软件包。
检查状态码、内容类型,以及经过脱敏处理的响应开头。407 表示代理身份验证质询。带品牌的 HTML 拒绝访问页面同样能暴露出中间设备,即使可见错误聚焦在 JSON 解析上。
确认已配置的 registry 以及所选的代理。它们是不同的地址:npm 向 registry 请求包数据,并可能借助代理来传输该请求。
修复产生该页面的路由或身份验证环节。清除包缓存并不能把被拒绝的请求变成已授权的请求。同样,关闭 TLS 校验也无法补上缺失的代理账户。
在脱敏之后保留原始诊断文本。相比解释预期的 registry 数据为何从未到达的 HTTP 响应,“Unexpected token”信息量更小。