虽然GitHub上有匹配的标签,但Bower安装无法找到令人满意的版本

Leo*_*ler 14 bower bower-install

我在Windows安装上安装bower依赖项时遇到问题.在Windows 7 x64上安装失败,使用git 2.6.4.windows.1,node v5.4.1,npm 3.3.12,bower 1.7.2.

它适用于OSX上的同事(git 2.5.4,node v4.1.1,npm 2.14.4,bower 1.5.3)和Windows 10上的同事(git 2.5.0.windows.1,node v4.2.2,npm 2.14.7,bower 1.3.11).

我得到的错误消息基本上告诉mit bower-angular-translate没有满足的版本标记2.8.1,但GitHub存储库确实有2.8.1版本.
失败的包是angular-ui-router,angular-local-storageangular-translate.

我尝试将节点降级到0.10.x4.x.x重新安装凉亭,两者都无法正常工作.

如果有人经历过与bower相同的错误消息行为(在Windows上?)并且已经成功解决了它,那么任何指针都会非常感激.


运行后的错误消息bower install:

bower angular-translate#~2.8.1    ENORESTARGET No tag found that was able to satisfy ~2.8.1

Additional error details:
No versions found in git://github.com/PascalPrecht/bower-angular-translate.git
Run Code Online (Sandbox Code Playgroud)

我的bower.json:

{
    "name": "My App Name",
    "version": "0.0.1",
    "dependencies": {
        "angular": "1.4.7",
        "angular-animate": "1.4.7",
        "angular-aria": "1.4.7",
        "angular-cookies": "1.4.7",
        "angular-resource": "1.4.7",
        "angular-sanitize": "1.4.7",
        "angular-material": "0.11.2",
        "angular-ui-router": "0.2.5",
        "angular-local-storage": "0.2.x",
        "angular-translate": "~2.8.1"
    }
}
Run Code Online (Sandbox Code Playgroud)

为了以防万一,我的package.json:

{
	"author": "My Name",
	"name": "My App Name",
	"version": "0.0.1",
	"dependencies": {},
	"devDependencies": {
		"chai": "2.2.0",
		"gulp": "3.9.x",
		"gulp-angular-filesort": "1.1.1",
		"gulp-bower-files": "0.1.x",
		"gulp-clean": "0.2.x",
		"gulp-debug": "2.1.x",
		"gulp-concat": "2.2.x",
		"gulp-filter": "1.0.x",
		"gulp-inject": "0.4.x",
		"gulp-less": "1.2.3",
		"gulp-livereload": "1.3.x",
		"gulp-tsc": "0.10.x",
		"gulp-uglify": "1.2.x",
		"gulp-util": "2.2.x",
		"gulp-watch": "0.6.x",
		"karma-coverage": "~0.2.4",
		"karma-mocha": "~0.1.6",
		"karma-phantomjs-launcher": "^0.1.4",
		"karma-sinon-chai": "~0.2.0",
		"merge-stream": "0.1.x",
		"mocha": "~1.20.1",
		"phantomjs": "^1.9.17",
		"q": "1.0.x",
		"run-sequence": "0.3.x"
	}
}
Run Code Online (Sandbox Code Playgroud)

Leo*_*ler 1

GitHub 撤销了我的 SSH 密钥,导致git clone失败。

由于通过git clone --branch <tagname> https://<repo>“丢失”标签克隆存储库有效,我从错误消息中了解到 Bower 无法找到该标签。

我的bashmsys-git 和我的都cmd.exe设置为使用Putty的 plink.exe,而 Bower 则尝试通过OpenSSH连接。Putty 已使用正确的私钥进行设置,而 OpenSSH 则不然。

罪魁祸首是 GitHub,它从我的个人资料中删除了我的 SSH 公钥,导致git clone通过 SSH(这是 的默认设置bower install)失败并显示Permission denied (publickey).

您所有的 SSH 密钥都属于我们

GitHub 没有向我发送有关此问题的通知电子邮件,加上Bower 错误消息描述了一个完全不同的错误,这使得错误跟踪成为一场噩梦。


感谢Andra 的评论以供使用git config --global url."https://".insteadOf git://。虽然不适合作为永久解决方案(我公司的 git 服务器强制使用 SSH,因为它优于简单的用户密码组合),但它有助于将问题限制在 SSH 访问上。