2013-02-20 33 views
2

试图通过an npm wrapper安装PhantomJS,同时在公司代理后面。我已经设置http_proxy和https_proxy环境变量,使故宫本身将能够与注册表进行通信:phantomjs npm安装在代理后面失败

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

但是,当它来到节点install.js phantomjs的阶段,我得到了一个协议不受支持错误:

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

回答

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命令),而不是依赖环境变量。

+0

这个工作后,我也删除HTTP_PROXY和HTTPS_PROXY(未设置HTTP_PROXY ...) – osundblad 2013-03-06 11:57:36

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

希望这对你的作品。祝你好运。