Bower:找不到适合 Angular 的版本

Posted

技术标签:

【中文标题】Bower:找不到适合 Angular 的版本【英文标题】:Bower: Cannot find suitable version for Angular 【发布时间】:2017-04-22 06:47:11 【问题描述】:

这可能是一个新手问题,但我不明白为什么当我运行 bower (1.7.9) 时找不到适合 Angular 的版本:

bower install

或者当我运行时它找不到适合 Angular-translate 的版本时:

bower update

(为什么当我在上面运行任一命令时它甚至给我一个不同的错误?)

我已将每个包更新到最新版本,但我没有找到任何需要旧版本 Angular 的包。这是我的 bower.json:


  "name": "test",
  "homepage": "http://www.google.nl",
  "version": "0.2.1",
  "ignore": [
    ".jshintrc",
    "**/*.txt"
  ],
  "dependencies": 
    "angular": "1.5.9",
    "angular-animate": "1.6.0-rc.2",
    "angular-bootstrap": "2.3.0",
    "angular-cookies": "1.6.0-rc.2",
    "angular-hotkeys": "0.2.2",
    "angular-i18n": "1.6.0-rc.2",
    "angular-route": "1.6.0-rc.2",
    "angular-translate": "2.13.1",
    "angular-sanitize": "1.6.0-rc.2",
    "angular-translate-loader-static-files": "2.8.1",
    "angular-ui-bootstrap-datetimepicker": "2.0.3",
    "angular-loading-bar": "0.9.0",
    "jquery": "3.1.1",
    "moment": "2.17.1",
    "ng-dialog": "0.6.4",
    "ng-focus-if": "1.0.7",
    "ng-tags-input": "3.1.1",
    "ngInfiniteScroll": "https://github.com/hlsolutions/ngInfiniteScroll.git#scroll-on-any-lement",
    "angular-ui-select": "0.19.6",
    "placeholders": "https://github.com/jamesallardice/Placeholders.js.git#~4.0.1",
    "angular-atomic-notify": "~1.0.3",
    "underscore": "https://github.com/components/underscore.git#~1.8.3",
    "angulartics-google-analytics": "0.4.0",
    "angular-ui-tinymce": "~0.0.17",
    "angular-collection": "~0.5.2",
    "angular-mocks": "1.6.0-rc.2",
    "angular-translate-handler-log": "2.13.1"
  

【问题讨论】:

【参考方案1】:

查看similar question 的最终答案是否有帮助

“我没有运行 bower install library -save,而是将最新版本的库直接添加到了我的 bower.json 并添加了分辨率...”

【讨论】:

我在上面的示例中就是这样做的,但这并没有解决我的问题【参考方案2】:

我看到的问题与:

"angular-translate": "2.13.1",
...
"angular-translate-loader-static-files": "2.8.1",

问题是: - 您要求准确的版本 - angular-translate-loader-static-files 也请求 angular-translate,但它需要相同的版本 (2.8.1) - bower 不允许同一个库有多个版本

一种解决方案是: "angular-translate-loader-static-files": "2.13.1"

Angular 也有同样的问题,你应该使用 "angular": "1.6.0-rc.2" 因为你已经为其他依赖 angular 的模块请求了这个版本。

但是,这不一定是最好的方法,因为例如我看到您正在使用一些需要 angular

一个更好的主意是更宽松地要求版本(例如“angular”:“>=1.5.x”),然后让 bower 为您的所有依赖项找到最合适的版本 - 但这很可能需要您工作使用旧版本或存在不兼容问题。

【讨论】:

【参考方案3】:

当您已经在项目的 bower_components 中下载了旧版本的库(这里是 angular)时,通常会发生这种情况。

通常要解决这个问题,我只是在重新安装凉亭之前清空我的 bower_components,一切都会恢复正常。

希望这对您的情况有所帮助。

【讨论】:

以上是关于Bower:找不到适合 Angular 的版本的主要内容,如果未能解决你的问题,请参考以下文章

无法通过 composer bower-asset/jquery 更新 yii2 找不到

vscode下运行c++找不到头文件是怎么回事

Angular 和 Typescript:找不到名称 - 错误:找不到名称

找不到QT的头文件怎么办?

如何在生产版本上升级 Angular 7 后修复“错误:模板解析错误:找不到管道‘异步’”

找不到模块'@angular-devkit/core'