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"
}
}
現在の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"
}
}
問題の非常に良い説明と解決策はここにあります:
参照用にここにいくつかの行を貼り付けてコピーするだけです:
Bowerを使用してアプリの依存関係を指定すると、一部のパッケージが同じライブラリの異なるバージョンに依存する場合があります。アプリが実際に必要としているライブラリのバージョンを解決する必要があります。言い換えれば、あなたはネクタイを破ります。しかし、毎回それを壊したくないので、選択を保存してください。
Bower installを実行すると、解決プロセスはインタラクティブになります。 bowerは、異なるバージョンのパッケージに依存する2つのパッケージがあることを認識すると、それらすべてのバージョンをリストし、次のように尋ねます。
プロンプトの次の行は非常に便利です。それは読みます:
驚くばかり!したがって、代わりに!2と入力すると、bower.jsonに選択が保存されます。具体的には、解決策のエントリを追加します。
これで、次回bowerインストールを実行するときに、アプリのemberがバージョン1.5.1であることを既に解決しているので、どのバージョンが欲しいのかというインタラクティブな質問はありません。
Bowerを更新する必要があります(私には有効です):
bower update
/ bower_componentsディレクトリを削除し、bower install
を再度実行します。
ハックですが、それでも動作します.. !!
インストールコマンドを実行し、バージョンの選択を求めるプロンプトが表示されたら、オプションのプレフィックスとして感嘆符(!)を使用します。たとえば、3番目のオプションの!3。これは、アプリケーションのbower.jsonファイルに追加され、競合を解決します。
お役に立てれば。
最初にこれを試してください:
npm install -g bower
上記の解決策が機能しない場合は、試してください:
バウワー更新