【问题标题】:Unable to find a suitable version for angular - bower install找不到适合 Angular 的版本 - bower install
【发布时间】:2014-11-12 23:23:46
【问题描述】:

我已经设置了我的 Angular 应用程序,所以当它被推送到 Heroku 时,它会运行 bower install。但是由于版本问题,我遇到了错误。

当我在本地运行 bower install 时,我会收到以下信息:

Unable to find a suitable version for angular, please choose one:                                                                           
    1) angular#1.2.16 which resolved to 1.2.16 and is required by angular-resource#1.2.16                                                   
    2) angular#1.2.23 which resolved to 1.2.23 and is required by angular-cookies#1.2.23                                                    
    3) angular#>= 1.0.8 which resolved to 1.2.25 and is required by angular-ui-router#0.2.10                                                
    4) angular#^1 which resolved to 1.2.25 and is required by angular-ui-codemirror#0.1.6                                                   
    5) angular#~1.2.2 which resolved to 1.2.25 and is required by splitter#f5c2195050                                                       
    6) angular#>=1.0.6 which resolved to 1.2.25 and is required by angular-elastic#2.4.0                                                    
    7) angular#~1.2 which resolved to 1.2.25 and is required by angular-nanoscroller#0.2.1                                                  
    8) angular#~1.2.9 which resolved to 1.2.25 and is required by angular-sockjs#0.0.1Prefix the choice with ! to persist it to bower.json  

? Answer::  

我应该怎么做 - 因为去抖动功能,我实际上需要 Angular 1.3 版

我的bower.json 看起来像这样:

{
  "name": "myapp",
  "version": "0.0.1",
  "dependencies": {
    "json3": "~3.3.1",
    "es5-shim": "~3.1.0",
    "angular-resource": "1.2.16",
    "angular-sanitize": "1.2.16",
    "angular-animate": "1.2.16",
    "angular-ui-router": "~0.2.10",
    "jquery": "~2.1.1",
    "angular-ui-codemirror": "~0.1.6",
    "splitter": "*",
    "angular-cookies": "~1.2.23",
    "angular-elastic": "~2.4.0",
    "angular-local-storage": "~0.0.7",
    "chance": "~0.5.6",
    "nanoscroller": "~0.8.4",
    "angular-nanoscroller": "~0.2.1",
    "angular-sockjs": "~0.0.1"
  }
}

【问题讨论】:

    标签: angularjs heroku bower


    【解决方案1】:

    首先试试这个:
    npm install -g bower

    如果上述解决方案不起作用,请尝试:

    凉亭更新
    为我工作。

    【讨论】:

      【解决方案2】:

      您可以运行安装命令,当它提示选择版本时,使用 (!) 感叹号作为选项的前缀。例如 !3 表示第三个选项。 然后将其添加到应用程序的 bower.json 文件中并解决冲突。

      希望这会有所帮助。

      【讨论】:

        【解决方案3】:

        删除您的 /bower_components 目录并再次运行 bower install..

        一个 hack 但仍然有效..!!

        【讨论】:

          【解决方案4】:

          你应该更新凉亭(它对我有用):

          bower update
          

          【讨论】:

          • 这样+1,顺利!!
          【解决方案5】:

          可以在此处找到该问题的非常好的解释和解决方案:

          bower-resolutions

          复制粘贴几行供参考:

          当您通过 Bower 为您的应用程序指定依赖项时,某些包可能依赖于同一库的不同版本。您将必须解决您的应用实际需要的库版本。换句话说,你打破了平局。但你不想每次都打破它,所以保留你的选择。

          当您运行 bower install 时,解析过程是交互式的。当 bower 发现有两个包依赖于不同版本的包时,它会列出所有这些版本并询问:

          提示中的下一行非常方便。上面写着:

          太棒了!因此,如果我键入 !2,我的选择将保存在 bower.json 中。具体来说,它会添加一个分辨率条目:

          现在,当您下次运行 bower install 时,没有关于我想要什么版本的交互式问题,因为我已经解决了我的应用程序的 ember 应该是 1.5.1 版本。

          【讨论】:

            【解决方案6】:

            将你当前的 angular 依赖更新到 1.3.x 并为 angular 添加一个分辨率来抑制提示:

            {
              "name": "myapp",
              "version": "0.0.1",
              "dependencies": {
                "angular": "~1.3.x",
                "angular-animate": "~1.3.x",
                "angular-cookies": "~1.3.x",
                "angular-resource": "~1.3.x",
                "angular-sanitize": "~1.3.x",
                "angular-ui-router": "~0.2.10",
                "angular-ui-codemirror": "~0.1.6",
                "angular-elastic": "~2.4.0",
                "angular-local-storage": "~0.0.7",
                "angular-nanoscroller": "~0.2.1",
                "angular-sockjs": ">=0.0.1",
                "json3": "~3.3.1",
                "es5-shim": "~3.1.0",
                "jquery": "~2.1.1",
                "splitter": "*",
                "chance": "~0.5.6",
                "nanoscroller": "~0.8.4"
              },
              "resolutions": {
                "angular": "~1.3.x"
              }
            }
            

            【讨论】:

            • 抱歉,您能告诉我 angular-ui-router (#0.2.10) 使用较旧的 Angular 会有什么问题吗?我的疑问是我每次都可以盲目地使用最新版本吗?
            • @AsimKT 您是否设法找到处理此类问题的策略?我的意思是有时很令人沮丧,因为您发现您使用的模块依赖于旧版本的 angular,并且另一个开发人员根据更高版本添加了另一个模块,它们对您的项目都非常重要!我想知道其他团队是如何处理这个问题的!
            • 不,我没有。我认为如果不是主要版本更改,可以使用新版本。我需要一个有此问题的项目的插件。我使用了最新的依赖项,它工作正常。尽管我在他们的回购中提出了一个问题来提升版本,但他们确实做到了。你是对的,我们都面临这些问题!
            猜你喜欢
            • 2017-04-22
            • 1970-01-01
            • 2016-06-21
            • 2015-03-27
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多