apm config set registry 是唯一有效配置项,必须设为国内镜像源如https://npmmirror.com/mirrors/atom;strict-ssl=false仅临时调试用,https-proxy无效,需先apm clean并完全退出atom再重试。

apm config set registry 是唯一有效配置项
apm 不读取系统 npm 的代理或环境变量,npm config set proxy 或 HTTP_PROXY 环境变量对它完全无效。真正起作用的只有 registry 配置项——它决定包元数据从哪拉,而不是“走哪个代理”。国内用户直连 https://atom.io/api 基本不可用,必须换源。
正确操作是:
- 运行
apm config set registry https://npmmirror.com/mirrors/atom(推荐,比 taobao 更稳定) - 立刻验证:
apm config get registry输出必须与设置值一致,否则静默失败 - 执行
apm install --check,看到Checking for native build tools done才算就绪
strict-ssl=false 仅用于临时调试
TLS 握手失败(如 Client network socket disconnected before secure TLS connection was established)常因中间人证书(如杀毒软件 HTTPS 扫描)或系统根证书过期触发。此时 strict-ssl=false 可绕过验证,但绝不能长期开启。
更安全的做法是:
- 先关掉 360、腾讯电脑管家等带 HTTPS 拦截功能的软件
- 若必须设为 false,只临时执行:
apm config set strict-ssl false,验证完立即恢复:apm config set strict-ssl true - Windows 用户注意:.apmrc 文件若含 BOM 或空行,会导致该配置被忽略
https-proxy 配置基本无效且易引发新问题
apm 对代理支持极弱,https-proxy 字段在多数版本中不被识别,强行写入 .apmrc 反而可能干扰 registry 解析。社区实测表明,即使代理 URL 正确,apm 仍大概率忽略它,继续尝试直连。
替代路径更可靠:
- 优先换 registry 源,90% 场景下无需代理
- 若公司网络强制要求代理,改用系统级代理工具(如 Proxifier 强制所有进程走代理),而非依赖 apm 自身配置
- 绝对不要在 .apmrc 中混用
registry和https-proxy,二者逻辑冲突,极易导致 fetch 失败却无明确报错
apm clean + 完全退出 Atom 是重试前提
缓存损坏(尤其是 zlib 层)会导致后续所有网络操作卡在 “fetching…” 或报 zlib: unexpected end of file,此时改 registry 或重开 Atom 都没用。
必须严格执行以下顺序:
- 关闭所有 Atom 窗口,包括任务栏/ Dock 后台进程(macOS/Linux 下可用
pkill -f atom) - 运行
apm clean清空 ~/.atom/.apm 目录下的缓存和临时文件 - 再执行
apm install xxx,避免复用损坏的中间产物
最常被跳过的一步是“完全退出”,旧 runtime 进程残留会复用坏缓存,让排查陷入死循环。











