Bower 安装失败,出现 Git ETIMEDOUT 包错误和退出代码 #128

Bower install fails with Git ETIMEDOUT package errors and Exit Code #128

环境:

当我从项目目录中的标准 windows 命令提示符 运行 'Bower install' 时,某些包出现以下错误,如下例;

Download of https://github.com/angular/bower-angular-sanitize/archive/v1.3.20.tar.gz failed with ETIMEDOUT, retrying in 1.9s

最后的错误是;

ECMDERR Failed to execute "git ls-remote --tags   --heads git://github.com/angular/bower-angular-sanitize.git", exit code of #128   fatal: unable to connect to github.com: github.com[0: 192.30.252.131]: errno=No   such file or directory

Additional error details:
fatal: unable to connect to github.com:
github.com[0: 192.30.252.130]: errno=No such file or directory

请注意,这不是特定软件包的问题。

是否可以 set/increase Bower/Git 的超时期限?

允许 git.exe 通过您的软件防火墙。

我正在使用第 3 方防火墙,但您可能正在使用内置的 Windows 防火墙。我已允许入站和出站访问。

我的 git 可执行文件的位置如下:-(请务必根据需要替换用户名);

C:\Users\USER.NAME\AppData\Local\Programs\Git\cmd\git.exe

如果您再次 运行 'bower install',您可能会看到相同的 ETIMEDOUT 错误,但最终错误可能已更改为类似;

ECMDERR Failed to execute "git ls-remote --tags --heads git://github.com/angular/bower-angular-sanitize.git", exit code of #128 fatal: Unable to look up github.com (port 9418) (No such host is known. )

允许 Git ssh 流量通过路由器防火墙。

输入内部(局域网)IP 地址,例如192.168.1.1为您的路由器进入网络浏览器并输入用户名和密码登录DD-WRT控制面板。

转到管理 --> 命令,然后添加以下代码;

iptables -t filter -A INPUT -p tcp --dport 9418 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 9418 -j ACCEPT

单击“保存防火墙”按钮。

最后,转到管理 --> 管理,然后单击重启路由器按钮。

给您的路由器一些时间重新启动,然后再尝试 'Bower install'。

注意:我注意到 'Bower install' 仍然时不时地失败。有时它需要 运行 几次才能成功(也许首先 'prime' 本地 Bower 缓存?)。 IMO Bower 安装似乎对网络延迟和超时太快敏感。