web-dev-qa-db-ja.com

angular-bower installの適切なバージョンが見つかりません

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"
  }
}
48
tommyd456

現在の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"
  }
}
74
naeramarth7

問題の非常に良い説明と解決策はここにあります:

bower-resolutions

参照用にここにいくつかの行を貼り付けてコピーするだけです:

Bowerを使用してアプリの依存関係を指定すると、一部のパッケージが同じライブラリの異なるバージョンに依存する場合があります。アプリが実際に必要としているライブラリのバージョンを解決する必要があります。言い換えれば、あなたはネクタイを破ります。しかし、毎回それを壊したくないので、選択を保存してください。

Bower installを実行すると、解決プロセスはインタラクティブになります。 bowerは、異なるバージョンのパッケージに依存する2つのパッケージがあることを認識すると、それらすべてのバージョンをリストし、次のように尋ねます。

enter image description here

プロンプトの次の行は非常に便利です。それは読みます:

enter image description here

驚くばかり!したがって、代わりに!2と入力すると、bower.jsonに選択が保存されます。具体的には、解決策のエントリを追加します。

enter image description here

これで、次回bowerインストールを実行するときに、アプリのemberがバージョン1.5.1であることを既に解決しているので、どのバージョンが欲しいのかというインタラクティブな質問はありません。

19
A.I

Bowerを更新する必要があります(私には有効です):

bower update
9
Luillyfe

/ bower_componentsディレクトリを削除し、bower installを再度実行します。

ハックですが、それでも動作します.. !!

3

インストールコマンドを実行し、バージョンの選択を求めるプロンプトが表示されたら、オプションのプレフィックスとして感嘆符(!)を使用します。たとえば、3番目のオプションの!3。これは、アプリケーションのbower.jsonファイルに追加され、競合を解決します。

お役に立てれば。

1
Arif Banduwale

最初にこれを試してください:
npm install -g bower

上記の解決策が機能しない場合は、試してください:

バウワー更新
0
user3365771