NPM Install through PROXY

有个 NPM 包安装的时候,要在测试环境下载一个打包好的二进制文件。但不知道测试环境发生了什么事情,相关的包的所有版本都被删除了。本地编译环境莫名其妙地报错,但问同事要来了编译好的包,于是临时用 Charles Proxy 绕过。

首先,给 NPM 配置 HTTP 代理,让请求能被 Charles 捕捉。默认 Charles 的 HTTP 代理端口在 8000。因此在终端执行下述命令。

npm config set proxy http://127.0.0.1:8000

接着在项目目录下执行 npm install --registry=my_npm_registry_here 进行安装,待 Charles 捕捉到前述 404 的包之后,终止安装。

由于这是一个 https 的地址,首次使用,需要特别配置 Charles 证书,已确保其可进行中间人攻击。

  1. 在 Charles 的 Help 菜单里,选择 SSL Proxying - Install Charles Root Certificate;
  2. 到 Keychain 里找到上一步安装的 Charles 证书,将其改为 Always Trust。

在 Charles 里找到对应条目,右键选择 Enable SSL Proxying。

Enable SSL Proxying for a request in Charles

然后继续在该条目的右键菜单里选择 Map Local,把请求指向本地编译好的文件。

重新执行 npm install --registry=my_npm_registry_here 安装成功。

最后,防止以后忘记了 npm proxy 配置,使用下述命令将其移除。

npm config rm proxy