把 npm 11.6.4 的包获取器设置为 SOCKS5h 代理
在 npm 11.6.4 的包获取器中改用 SOCKS URL,并选择在本地还是在代理端解析目标主机名。
对于 npm 11.6.4 的包获取器,需要由代理解析目标名称时使用 socks5h,需要本地解析时使用 socks5。该版本内置的 socks-proxy-agent 正是做出这一区分的关键。
把已有的 SOCKS5 端点写入用户配置:
npm config set proxy socks5h://127.0.0.1:1080 --location=user
npm config set https-proxy socks5h://127.0.0.1:1080 --location=user
在允许且无需代理认证的情况下从公共仓库下载时,SOCKS5 代理列表中的条目可以替换两个 URL 里的示例本地监听地址。两个目标设置也可以指向同一个端点。当目标名称只存在于该网络的 DNS 视图中时,代理端解析才有用。
受支持的链路从 npm-registry-fetch 经 make-fetch-happen 到 @npmcli/agent,由它选择 SocksProxyAgent。这条包获取链路不需要 HTTP 到 SOCKS 的适配器。
在采用之前,先确认命令或 IDE 实际运行的是哪个 npm。更早的版本使用了其他获取实现;11.6.4 的支持并不能说明此前每个版本的行为。