即使设置了代理,也无法 运行 bower 或 npm 通过网络防火墙 - ETIMEOUT

Can't run bower or npm through network firewall even with proxy set - ETIMEOUT

我无法让 bower 或 npm 通过客户端网络工作,我不确定我是否正确设置了代理设置。

我已经尝试了对类似问题的答案的各种建议,但对我来说没有任何用处。我收到以下错误:

C:\myproj>bower search react
bower retry         Request to http://bower.herokuapp.com/packages/search/react
failed with ETIMEDOUT, retrying in 1.7s
bower retry         Request to http://bower.herokuapp.com/packages/search/react
failed with ETIMEDOUT, retrying in 3.6s
bower retry         Request to http://bower.herokuapp.com/packages/search/react
failed with ETIMEDOUT, retrying in 7.0s
bower retry         Request to http://bower.herokuapp.com/packages/search/react
failed with ETIMEDOUT, retrying in 14.6s

我可以通过浏览器正常访问 http://bower.herokuapp.com,它为我提供了 json 回复。

我的 .bowerrc 文件(在 domain\user 名称上使用 '\',否则无法解析它):

{
    "directory": "Content/bower_components",
    "proxy": "http://mydomain\myuser:mypassword@nnnnn004.claims.local:8080",
    "https-proxy": "http://mydomain\myuser:mypassword@nnnnn004.claims.local:8080",
    "strict-ssl": false,
    "registry": "http://bower.herokuapp.com"
}

对于 NPM,它只是挂起:

C:\myproj>npm install grunt-cli
npm WARN package.json cl.clientappointment@1.0.0 No repository field.
npm WARN package.json cl.clientappointment@1.0.0 No README data
|

我的 .gitconfig 文件:

[url "http://"]
    insteadOf = git://
[http]
    proxy = http://mydomain\myuser:mypassword@nnnnn004.claims.local:8080
[https]
    proxy = http://mydomain\myuser:mypassword@nnnnn004.claims.local:8080

我的 .npmrc 文件:

proxy=http://mydomain\myuser:mypassword@nnnnn004.claims.local:8080/
https-proxy=http://mydomain\myuser:mypassword@nnnnn004.claims.local:8080/
strict-ssl=false

如果我连接到没有防火墙的不同网络,一切正常。 我不确定我是否在提供的代理字符串中正确输入了我的用户名/密码,或者我是否只是在其他地方缺少设置。

所以问题是我没有转义 NPM (.npmrc) 和 Bower (.bowerrc) 使用的代理 url 中的特殊字符。

proxy=http://domain\user:password@proxy:8080" 

需要

proxy=http://domain%5Cuser:password@proxy:8080"