如何修复Bower ECMDERR问题

123

我在Windows 7上使用「yeoman」和「bower」,但在创建应用程序时出现以下错误

yo webapp

错误为

bower not-cached    git://github.com/jlong/sass-bootstrap.git#~3.0.0
bower resolve       git://github.com/jlong/sass-bootstrap.git#~3.0.0
bower not-cached    git://github.com/Modernizr/Modernizr.git#~2.6.2
bower resolve       git://github.com/Modernizr/Modernizr.git#~2.6.2
bower not-cached    git://github.com/jquery/jquery.git#~1.10.2
bower resolve       git://github.com/jquery/jquery.git#~1.10.2
bower ECMDERR       Failed to execute "git ls-remote --tags --heads git://github
.com/jquery/jquery.git", exit code of #128

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

Yeoman、Bower 和 Node 的版本

c:\yo-test>bower -v
1.2.8

c:\yo-test>yo -version
1.1.2

c:\yo-test>node -v
v0.10.15

非常感谢您提供的任何建议。


可能是重复的问题:仅使用https安装Bower? - kenorb
13个回答

426

7
这会有其他副作用吗? - Nate-Wilkins
4
自 Git 1.6.6+(2010 年)及智能 HTTP 协议的实现以来,“ssh” 和 “https” 是等效的。 - leoh
1
我必须在环境设置中定义HOME,并将其指向包含.gitconfig文件的文件夹。 - Nick
1
(+1),提及“bower install question”的链接。 - sol4me
对于因为安装问题来到这里的人,这就是解决方案!谢谢! - ItayB
显示剩余2条评论

27

我也遇到了同样的问题,上面的答案对我没用。但我找到了另外一种解决方法。你可能与代理有关的问题。如果你在代理后面,就必须按照以下步骤操作:

.bowerrc文件中添加以下内容以解决“err ETIMEDOUT”错误:

{
    "directory": "app/bower_components",
    "proxy": "http://PROXYSERVER:PORT",
    "https-proxy": "https://PROXYSERVER:PORT",
    "strict-ssl": false
}

使用下面这个命令来解决ECMDERR问题:

git config --global http.proxy http://USER:PASSWORD@PROXYSERVER:PORT

对我来说它有效。


10

以下命令对我有效:

npm cache clean(清除npm缓存)

bower cache clean(清除bower缓存)

然后执行:

bower install(安装bower依赖包)


9

对于我来说,将Git升级到最新版本有所帮助。


1

我的 bower.json 最初是这样的:

{
  "name": "HelloIonic",
  "private": "true",
  "devDependencies": {
    "ionic": "driftyco/ionic-bower#1.3.1",
    "ion-datetime-picker": "katemihalikova/ionic-datetime-picker#0.4.0",    
    "ion-tree-list": "fer/ion-tree-list#0.0.10"                             
  }
}

我遇到了“未能执行git remote -ls”问题。当我把它改成以下内容后,它突然开始工作:

{
  "name": "HelloIonic",
  "private": true,
  "devDependencies": {
    "ionic": "^1.3.2",
    "ion-datetime-picker": "^0.4.0",
    "ion-tree-list": "^0.0.10"
  },
  "resolutions": {
    "ionic": "^1.0.0-beta.9"
  }
}

1

为了对leoh的回答做出贡献(因为我没有足够的声望来发表评论):

如果你和我一样发现无法执行命令,因为git没有全局安装在你的机器上,在Visual Studio中打开“工具”>“选项”,然后选择“项目和解决方案”>“Web包管理”>“外部Web工具”,你会看到默认情况下有两个git位置:

  • $(DevEnvDir)\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git\cmd
  • $(DevEnvDir)\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git\mingw32\bin

默认情况下(对于Visual Studio 2017 Enterprise),它们分别映射到:

  • C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git\cmd
  • C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git\mingw32\bin

然后打开命令提示符(Windows + R > "cmd"),导航到上述位置,并运行leoh的命令。我不确定应该从哪个位置运行它,所以我从两个位置都运行了一遍。从那时起,问题就得到了解决。


0
在我的情况下,是杀毒软件的防火墙阻止了Bower与Github的连接。我没有意识到杀毒软件通过Windows询问我是否允许Git执行连接。
我允许它,然后它就像魔法般地工作了 :)

0

您可以删除所有已安装的生成器,然后重新安装。这将会有所帮助。


0
我曾经遇到过同样的问题。在安装了“Microsoft .NET Core 1.0.0 RC2 - VS 2015”之后问题得到解决。

我非常怀疑这直接解决了问题。安装该工具所需的时间可能足以使远程服务器再次开始响应请求。 - Jared Deckard

0

Dakkon_jareth 提供的解决方案对我有用,我没有 app/bower_components,但是有库,我将其更改为 app/bower_components 并开始工作, 我还建议在清除 NPM 缓存后尝试 2-3 次。


如果在设置代理后尝试了2-3次,那么很可能不是代理解决了问题。如果远程服务器不可用,就会出现此错误,因此您可能只是一直重试,直到服务器再次可用。 - Jared Deckard

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接