phantomjs npm安装在代理后面失败

时间:2013-02-20 18:28:16

标签: node.js npm phantomjs

尝试在公司代理后面通过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.

2 个答案:

答案 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)

这对我有用。

  1. 以管理员身份打开终端
  2. 导航到项目文件夹并输入以下命令
  3. sudo npm config set proxy http://proxy_host:port -g然后
  4. sudo npm config set https-proxy http://proxy_host:port -g

  5. 希望这适合你。祝你好运。