删除 npm 代理后它为何还在
npm 会读取多个配置来源。从某一文件删除条目或重装 Node,都可能让另一个来源继续生效。
你删掉了 npm 的代理,再查询一次,值却还在。在用更高权限重复命令之前,先确认你删的是哪一处配置。
项目里的 .npmrc、用户级文件、全局配置、命令行选项和环境设置都可能起作用。从一个地方移除值,可能会暴露出它下面的另一个值。
改动之前先定位这个值
检查 npm 实际生效的配置,以及这次调用涉及的文件。注意操作是项目级的还是全局的。项目设置不能作为全局安装的证据。
代理选项的名称同样重要。一个形似 http_proxy 的自定义键并不会自动成为文档所述的 proxy 选项。环境变量的拼写和 npm 配置键的拼写是两套不同的接口。
重装可执行文件并不能解决问题
Node 的安装目录未必是你用户配置所在的位置。替换可执行文件可能让用户文件和进程环境保持不变。这就是为什么一次干净的程序安装可能立刻显示出旧的网络端点。
找到来源之后,在该层级移除过时的条目。然后用产生故障的同一工作目录和同一账号重新查询实际生效的值。除非已安装的 npm 对此有文档说明,否则不要随意设置空字符串或看起来像 null 的值。
把 registry 设置单独看待。本地 registry 地址看起来可能像代理地址,但删掉它会改变软件包元数据的请求位置。不要仅仅为了去掉一个不需要的转发代理,就清除必需的内网 registry。