有个 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 证书,已确保其可进行中间人攻击。
在 Charles 里找到对应条目,右键选择 Enable SSL Proxying。
然后继续在该条目的右键菜单里选择 Map Local,把请求指向本地编译好的文件。
重新执行 npm install --registry=my_npm_registry_here
安装成功。
最后,防止以后忘记了 npm proxy 配置,使用下述命令将其移除。
npm config rm proxy