Bower:找不到 Angular 的合适版本
Bower: Cannot find suitable version for Angular
这可能是一个新手问题,但我不明白为什么 bower (1.7.9) 找不到适合 Angular 的版本,而我 运行:
bower install
或者当它找不到适合 Angular 的版本时-翻译当我 运行:
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"
}
}
看看 similar question 的最终答案是否有帮助
"Instead of running bower install library -save I did added the latest versions of the libraries directly to my bower.json and added the resolutions..."
我看到的问题与:
"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" 因为你已经为依赖于 [=27= 的其他模块请求了这个版本].
但是,这不一定是最好的方法,因为例如我看到您正在使用一些需要 angular < 1.6 (ngInfiniteScroll) 的库,因此您将无法在如果你真的想使用 1.6 版本,你的项目。
一个更好的主意是更宽松地要求版本(例如 "angular": ">=1.5.x"),然后让 bower 为您的所有依赖项找到最合适的版本 - 但是这很可能需要您使用旧版本或冒不兼容问题的风险。
当您已经在项目的 bower_components 中下载了旧版本的库(此处为 angular)时,通常会发生这种情况。
一般来说,为了解决这个问题,我只是在重新安装 Bower 之前清空我的 bower_components,一切都会恢复正常。
希望这对您有所帮助。
这可能是一个新手问题,但我不明白为什么 bower (1.7.9) 找不到适合 Angular 的版本,而我 运行:
bower install
或者当它找不到适合 Angular 的版本时-翻译当我 运行:
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"
}
}
看看 similar question 的最终答案是否有帮助
"Instead of running bower install library -save I did added the latest versions of the libraries directly to my bower.json and added the resolutions..."
我看到的问题与:
"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" 因为你已经为依赖于 [=27= 的其他模块请求了这个版本].
但是,这不一定是最好的方法,因为例如我看到您正在使用一些需要 angular < 1.6 (ngInfiniteScroll) 的库,因此您将无法在如果你真的想使用 1.6 版本,你的项目。
一个更好的主意是更宽松地要求版本(例如 "angular": ">=1.5.x"),然后让 bower 为您的所有依赖项找到最合适的版本 - 但是这很可能需要您使用旧版本或冒不兼容问题的风险。
当您已经在项目的 bower_components 中下载了旧版本的库(此处为 angular)时,通常会发生这种情况。
一般来说,为了解决这个问题,我只是在重新安装 Bower 之前清空我的 bower_components,一切都会恢复正常。
希望这对您有所帮助。