Windows 只能支持 http 代理,如果你在公司内网使用的是 socks 代理,你就不能使用 npm 这样的工具创建或者更新项目了。下面的小技巧可以帮助你解决这个问题。
安装 polipo
找一台 Linux 虚机。如果你是在 windows 上你可以通过安装 wsl 组件得到 Linux 虚机。使用下面的命令,安装 polipo
sudo apt-get install polipo
如果看到类似下面的信息,表示你的 ubuntu 上找不到 polipo
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package polipo
可以使用下面的命令安装 polipo
wget http://archive.ubuntu.com/ubuntu/pool/universe/p/polipo/polipo_1.1.1-8_amd64.deb
sudo dpkg -i polipo_1.1.1-8_amd64.deb
配置 polipo
安装完成以后,在 /etc/polipo/ 文件夹下找到 config 文件。给 config 文件增加以下内容:
socksParentProxy = "127.0.0.1:1080"
socksProxyType = socks5
proxyAddress = "0.0.0.0"
proxyPort = 10080
这里假设你的 socks 位置在 127.0.0.1,端口号是 1080。
使用下面的命令,重启 polipo 服务
sudo service polipo restart
给 npm 配置 http 代理
npm config set proxy http://your-ip:10080
npm config set https-proxy http://yourip:10080
结论
本文推荐使用 polipo 完成 socks5 到 http 代理的转换。转换完成以后,我们就可以使用 npm 使用转换完成后的 http 代理了。