Bower 安装未能找到令人满意的版本,尽管 GitHub 上有匹配的标签

Bower install fails to find satisfying version, although there is a matching tag on GitHub

我在 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 存储库 does have a version 2.8.1.
失败的包是 angular-ui-routerangular-local-storageangular-translate.

我尝试将节点降级到 0.10.x4.x.x 并重新安装 bower,但都没有用。

如果有人遇到过与 Bower 相同的错误消息行为(在 windows?)并已成功解决,any pointers 将不胜感激。


运行后的错误信息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

我的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"
    }
}

为了以防万一,我的 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"
 }
}

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

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

我的 msys-git 和 cmd.exebash 都设置为使用 Putty 的 plink.exe,而bower 试图通过 OpenSSH 进行连接。 Putty 设置了正确的私钥,OpenSSH 不是。

这里的罪魁祸首是 GitHub,它从我的配置文件中删除了我的 SSH public 密钥,使 git clone 通过 SSH(这是 bower install 的默认设置)失败Permission denied (publickey).

GitHub 没有向我发送有关此问题的通知电子邮件 描述一个完全不同的错误的 bower 错误消息的组合使得 error-tracing 这是一场噩梦.


荣誉转至 Andra 评论使用 git config --global url."https://".insteadOf git://。虽然不适合作为永久解决方案 (我公司的 git 服务器强制执行 SSH,因为它优于简单的 user-password 组合),但它有助于将问题限制在SSH 访问。

尝试将 git 协议从 git 更改为 https 通过执行:

git config --global url."https://".insteadOf git://