Bower呼叫被公司代理阻止

时间:2014-02-13 09:58:06

标签: proxy bower

我正在尝试将Bower用于网络应用,但发现自己遇到了某种代理问题:

D:\>bower search jquery
bower retry         Request to https://bower.herokuapp.com/packages/search/jquery failed with ECONNRESET, retrying in 1.2s
bower retry         Request to https://bower.herokuapp.com/packages/search/jquery failed with ECONNRESET, retrying in 2.5s
bower retry         Request to https://bower.herokuapp.com/packages/search/jquery failed with ECONNRESET, retrying in 6.8s
bower retry         Request to https://bower.herokuapp.com/packages/search/jquery failed with ECONNRESET, retrying in 15.1s
bower retry         Request to https://bower.herokuapp.com/packages/search/jquery failed with ECONNRESET, retrying in 20.3s
bower ECONNRESET    Request to https://bower.herokuapp.com/packages/search/jquery failed: tunneling socket could not be established, cause=Parse Error

相关要点:

  • 我可以浏览https://bower.herokuapp.com/packages/search/jquery并返回完整的json响应。
  • 我可以使用git来克隆,两者都使用git://协议和http(s)。
  • 我可以在没有这些问题的情况下直接使用NPM
  • 我尝试使用Fiddler来确定被阻止的内容,但它没有检测到Bower命令的任何调用。我可以在Fiddler看到来自NPM命令的调用。
  • 我搜索了Bower问题清单,看到了类似的问题,但他们要么没有解决方案,要么看起来与我的不一样。

有什么想法吗?

16 个答案:

答案 0 :(得分:160)

谢谢@ user3259967

这完成了这项工作。

我想补充一点,如果您是需要进行身份验证的代理,您可以将用户名/密码添加到 .bowerrc 文件中。

{
  "directory": "library",
  "registry": "http://bower.herokuapp.com",
  "proxy":"http://<USERNAME>:<PASSWORD>@<PROXY_IP>:<PROXY_PORT>/",
  "https-proxy":"http://<USERNAME>:<PASSWORD>@<PROXY_IP>:<PROXY_PORT>/"
}

通知 https-proxy

中使用 http://

答案 1 :(得分:38)

我的解决方案就是这个配置.bowerrc

{
  "directory": "vendor",
  "registry": "http://bower.herokuapp.com",
  "proxy": "http://<user>:<pwd>@proxy.host.br:8080",
  "https-proxy": "http://<user>:<pwd>@proxy.host.br:8080",
  "strict-ssl": false
}

使用httpps-proxy加上带http协议的注册表项中的http协议。

请记住将8080端口号更改为您的代理服务器端口。

答案 2 :(得分:20)

你是代理人吗?

您是否设置了环境变量HTTP_PROXY和HTTPS_PROXY?

SET HTTP_PROXY=http://yourproxyserver:yourproxyport
SET HTTPS_PROXY=http://yourproxyserver:yourproxyport

答案 3 :(得分:12)

尝试更改.bowerrc中的注册表值:

{
    "registry": "http://bower.herokuapp.com"
}

答案 4 :(得分:9)

我没有.bowerrc文件来配置我的凉亭设置。我发现这些设置存在于名为 defaults.js 的文件中。在&#34; C:\ ... \ bower \ node_modules \ bower-config \ lib \ util \ defaults.js &#34;下找到 我希望这有助于其他人:

&#13;
&#13;
var defaults = {
    'cwd': process.cwd(),
    'directory': 'bower_components',
    'registry': 'http://bower.herokuapp.com',
    'shorthand-resolver': 'git://github.com/{{owner}}/{{package}}.git',
    'tmp': paths.tmp,
    'proxy': '<<http://user:pass@proxy:port>>',  // change proxy here or at the top
    'https-proxy': '<<http://user:pass@proxy:port>>',  // change proxy here or at the top
    'timeout': 30000,
    'ca': { search: [] },
    'strict-ssl': false,
    'user-agent': userAgent,
    'color': true,
    'interactive': null,
    'storage': {
        packages: path.join(paths.cache, 'packages'),
        links: path.join(paths.data, 'links'),
        completion: path.join(paths.data, 'completion'),
        registry: path.join(paths.cache, 'registry'),
        empty: path.join(paths.data, 'empty')  // Empty dir, used in GIT_TEMPLATE_DIR among others
    }
};

module.exports = defaults;
&#13;
&#13;
&#13;

答案 5 :(得分:8)

您可以尝试在@thebignet

上对同一问题提出建议GitHub

proxyhttps-proxystrict-ssl配置设置为.bowerrc文件:

{
  "proxy"       : "http://<host>:<port>",
  "https-proxy" : "http://<host>:<port>",
  "strict-ssl"  : false
} 

您必须从终端运行命令:

git config --global url."https://".insteadOf git://

答案 6 :(得分:5)

"strict-ssl": false
.bowerrc中的

为我做了

答案 7 :(得分:4)

Win 7

对我有用的是this链接建议的步骤 - 阅读#nanowizard回答。

  1. template <typename P, typename T, typename M, typename ... Arg> std::function<M(Arg&&...)> operator->* (P smartptr, M (T::*ptrmem)(Arg... args)) { return [smartptr,ptrmem](Arg&&... args) -> M { return ((*smartptr).*ptrmem)(std::forward<Arg>(args)...); }; } 文件中,删除所有的http_proxy / https_proxy设置 你可能早点做过。这个很重要。 因此,此文件的最终内容应如下所示: -

    .bowerrc
  2. 将电脑中的环境变量 - { "directory": "app/bower_components" } http_proxy设置为公司防火墙代理。如果您的公司代理需要身份验证,并且 密码包含特殊字符,请按照this链接的建议将其转换为十六进制格式 。在我的情况下,使用'\'转义字符没有帮助。此外,我不得不重启我的系统。

  3. 注意:  http_proxy和https_proxy应包含相同的代理地址,如下所示

    https_proxy

答案 8 :(得分:1)

我支持企业防火墙,我也必须指定域名。 这些答案都不适合我。这是我做的 -

  1. http://cntlm.sourceforge.net/
  2. 下载CNTLM
  3. 显然安装了它。
  4. 打开cntml.ini并更改以下内容

    your_domain_name

    用户名 your_domain_username

    密码 your_domain_passowrd

    PassLM 1AD35398BE6565DDB5C4EF70C0593492(取消注释)

    PassNT 77B9081511704EE852F94227CF48A793(取消注释)

    代理http://localhost:8888

  5. 转到services.msc并启动CNTLM身份验证服务。

  6. 下载Fiddler 4/2(无论他们称之为什么)。
  7. 也安装它。这将在http://localhost:8888
  8. 中运行
  9. 现在你正在运行的任何程序(代理)到http://locahost:3128(这就是CNTLM正在运行的。)
  10. 在这种情况下,请将http.proxy和https.proxy指定为http://localhost:8888

    这适用于其他客户端程序。只需将代理指定为http://localhost:8888

    即可

答案 9 :(得分:1)

我的工作是改变.bowerrc文件

{
 "directory": "client/lib", 
 "registry": "http://bower.herokuapp.com",
 "proxy":"http://192.168.1.205:3228",
 "https-proxy":"http://192.168.1.205:3228"
}
  • 其中client / lib是您要安装的安装目录
  • http://192.168.1.205:3228是您的代理IP端口。根据组织结构,公司代理可以有所不同。

答案 10 :(得分:1)

除了在SCHED_HMP中设置以下代理:

.bowerrc

我需要运行以下命令来解决问题:

{
  "directory": "app/bower_components",
  "proxy":"http://<user>:<password>@proxy.company.com:<proxy-port>",
  "https-proxy":"http://<user>:<password>@proxy.company.com:<proxy-port>",
  "http-proxy":"http://<user>:<password>@proxy.company.com:<proxy-port>",
  "strict-ssl": false,
  "registry": "http://bower.herokuapp.com"
}

答案 11 :(得分:1)

其他答案中使用的注册表现已弃用。请更新它!

{
  "proxy":"http://<user>:<password>@proxy.company.com:<proxy-port>",
  "https-proxy":"http://<user>:<password>@proxy.company.com:<proxy-port>",
  "registry": "https://registry.bower.io"
}

答案 12 :(得分:0)

{
  "directory": "library",
  "registry": "http://bower.herokuapp.com",
  "proxy":"http://<USERNAME>:<PASSWORD>@<PROXY_IP>:<PROXY_PORT>/",
  "https-proxy":"http://<USERNAME>:<PASSWORD>@<PROXY_IP>:<PROXY_PORT>/"
}

这段代码对我有用。我正在使用Win 7和chrome以及git bash。这里有一些事情需要清除。这需要花费大量时间来查找有关用户名,密码,代理IP和端口的实际数据。我将逐步描述它,以便每个学习者都能轻松掌握信息:

  1. 在登录文件夹中名为.bowerrc的记事本中创建一个文件;您可以通过在开始&gt;运行&gt;%UserProfile%中键入并按OK。
  2. 来到那里
  3. 在.bowerrc文件中键入以上代码,并进行以下更改:

    <USERNAME>替换为您的互联网连接用户ID或登录ID

    <PASSWORD>替换为您的互联网连接密码或登录密码 将<PROXY_IP><PROXY_PORT>替换为工作代理IP地址及其端口号。

       **Note: There should be no angle brackets.**
    
  4. 代理IP应该与您自己的IP不同。

  5. 在使用任何代理IP和端口之前,您应该通过更改代理IP和端口来检查它是否正常工作。

  6. 您可以通过此链接了解代理设置的详细信息description here

  7. 从此代理设置中,您将获得代理IP和端口。
  8. 重新检查所有输入,以便所有输入都正确并保存并关闭文件。
  9. 打开git bash并将目录更改为项目文件并输入命令并按Enter键,在我的例子中,是git bash命令:
  10.   

    @ a-PC MINGW32 / d / conFusion

         

    $ bower install

    1. 它就像魔法一样。

答案 13 :(得分:0)

如果它对某人有帮助,我就会因为群组政策而被“阻止”。

解决方案是在CryptoPrevent中发出异常,CryptoPrevent是我们公司计算机上安装的应用程序,用于防止加密锁定。

答案 14 :(得分:0)

有关信息,您可以在.bowerrc文件中添加无代理属性。我不知道从什么时候开始支持但是它适用于bower 1.7.4并且它解决了带有内部存储库的企业代理背后的凉亭问题

.bowerrc:

{
  "directory": "bower_components", 
  "proxy": "http://yourProxy:yourPort",
  "https-proxy":"http://yourProxy:yourPort",
  "no-proxy":"myserver.mydomain.com"
}

此致

答案 15 :(得分:0)

请确保您的代理密码中没有特殊字符。将其转换为十六进制。它对我有用。