环境:
- MS Windows 10
- Node.js版本0.12.4
- Bower v1.65
- Git v2.63
- 路由器DD-WRT v24-sp2(2014年3月13日)千兆
当我在项目目录上的标准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
请注意,这不是特定软件包的问题
是否可以设置/增加Bower/Git的超时时间?
允许git.exe通过软件防火墙
我使用的是第三方防火墙,但你可能使用的是内置的Windows防火墙。我允许入站和出站访问。
我的git可执行文件的位置如下:-(请确保根据需要替换用户名);
C:UsersUSER.NAMEAppDataLocalProgramsGitcmdgit.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流量通过路由器防火墙
在web浏览器中输入内部(LAN)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
单击"保存防火墙"按钮。
最后,转到管理-->管理,然后单击REBOOT ROUTER按钮。
在再次尝试"Bower安装"之前,请给路由器一些时间重新启动。
注意:我注意到"Bower安装"仍然不时失败。有时,它需要运行几次才能成功(也许是先"初始化"本地Bower缓存?)。IMO Bower的安装似乎对网络延迟很敏感,超时过快。