pnpm install报错ERR_SSL_PACKET_LENGTH_TOO_LONG问题解决
报错内容
[WARN]GET https://registry.npmmirror.com/stack-trace/-/stack-trace-0.0.9.tgz error(ERR_SSL_PACKET_LENGTH_TOO_LONG). Will retryin1minute.1retries left.根本原因
{ssh-host}到registry.npmmirror.com(国内 npm 镜像)的网络连接不稳定,HTTPS 请求经常收到异常的 SSL 数据包,导致ERR_SSL_PACKET_LENGTH_TOO_LONG错误。
解决步骤
1. 切换到 npm 官方源
测试发现registry.npmjs.org在远端机器上可以正常访问:
curl-sIhttps://registry.npmjs.org/vis-data# 返回 HTTP/2 200,正常而 npmmirror 虽然 API 能访问,但 tarball 下载频繁超时和 SSL 异常。
2. 关闭 strict-ssl
Node.js 24 的 TLS 行为与 npmmirror 的 CDN 存在兼容性问题(ERR_SSL_PACKET_LENGTH_TOO_LONG),通过关闭严格 SSL 校验绕过:
strict-ssl=false3. 增大重试参数
因为网络本身慢(20-40 KiB/s),增大超时和重试次数避免误杀:
fetch-retries=5 fetch-retry-maxtimeout=120000 fetch-retry-mintimeout=100004. 最终配置(.npmrc)
在仓库根目录创建了 .npmrc:
registry=https://registry.npmjs.org/ strict-ssl=false fetch-retries=5 fetch-retry-maxtimeout=120000 fetch-retry-mintimeout=100005. 执行安装
pnpminstall--no-verify-store --no-frozen-lockfile--no-frozen-lockfile让它用 npmjs.org 重新解析依赖地址,--no-verify-store跳过 store 完整性校验避免额外的网络开销。
一句话总结
从不通的
npmmirror切换到通的npmjs.org,关掉 SSL 严格校验,拉大重试窗口。
