尝试在公司代理后面通过PhantomJS安装an npm wrapper。我已经设置了http_proxy和https_proxy环境变量,以便npm本身能够与注册表通信:
export http_proxy=my-company-proxy.com:80
export https_proxy=my-company-proxy.com:80
但是当谈到phantomjs的节点install.js阶段时,我得到了一个不支持的协议错误:
http.js:1711
throw new Error('Protocol:' + options.protocol + ' not supported.');
^
Error: Protocol:my-company-proxy.com: not supported.
答案 0 :(得分:1)
问题是phantomjs npm包装器代码假定代理信息是一个完整的URL,而不仅仅是一个主机名。这解决了这个问题:
export http_proxy=http://my-company-proxy.com:80
export https_proxy=http://my-company-proxy.com:80
npm,git等可以使用任何一种格式正常工作,但是对于这个特定的包,它需要HTTP_PROXY才能拥有完整的URL。
更新:this related issue已经解决,现在它可以使用与npm本身相同的配置系统(例如,如果你使用了npm config命令),而不是依赖于环境变量。
答案 1 :(得分:0)
这对我有用。
sudo npm config set proxy http://proxy_host:port -g
然后sudo npm config set https-proxy http://proxy_host:port -g
希望这适合你。祝你好运。