phantomjs npm安装在代理后面失败

试图在企业代理后面通过npm包装来安装PhantomJS 。 我已经设置了http_proxy和https_proxy环境variables,以便npm本身能够与registry进行通信:

export http_proxy=my-company-proxy.com:80 export https_proxy=my-company-proxy.com:80 

但是当谈到phantomjs的node.js阶段时,我得到一个Protocol不支持的错误:

 http.js:1711 throw new Error('Protocol:' + options.protocol + ' not supported.'); ^ Error: Protocol:my-company-proxy.com: not supported. 

问题是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。

更新: 这个相关的问题已经解决,现在它可以使用与npm本身相同的configuration系统(例如,如果你使用npmconfiguration命令),而不是依赖于环境variables。

这是为我工作。

  1. 以pipe理员身份打开terminal
  2. 导航到您的项目文件夹并input以下命令
  3. sudo npm config set proxy http://proxy_host:port -g then
  4. sudo npm config set https-proxy http://proxy_host:port -g

希望这对你有用。 祝你好运。