J'ai configuré mon application Angular. Ainsi, lorsqu'elle est transmise à Heroku, elle exécute bower install
. Cependant, je reçois des erreurs en raison de problèmes de version.
Lorsque je lance bower install
localement, on me présente:
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::
Que dois-je faire avec cela? En fait, j'ai besoin de la version 1.3 d'Angular en raison de la fonction anti-rebond.
Mon bower.json
ressemble à ceci:
{
"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"
}
}
Mettez à jour vos dépendances angulaires actuelles vers la version 1.3.x et ajoutez une résolution pour angular afin de supprimer l'invite:
{
"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"
}
}
Une très bonne explication et résolution du problème peuvent être trouvées ici:
Copiez simplement quelques lignes ici pour référence:
Lorsque vous spécifiez des dépendances pour votre application via Bower, certains packages peuvent dépendre de différentes versions de la même bibliothèque. Vous devrez déterminer quelle version des bibliothèques de votre application souhaite réellement. En d'autres termes, vous cassez la cravate. Mais vous ne voulez pas le rompre à chaque fois, alors enregistrez votre choix.
Lorsque vous exécutez l’installation de bower, le processus de résolution est interactif. Lorsque Bower reconnaît qu’il existe deux packages qui dépendent d’un package de versions différentes, il répertorie toutes ces versions et demande:
La ligne suivante de l'invite est très pratique. Ça lit:
Impressionnant! Donc, si je tape! 2 à la place, mon choix est enregistré dans bower.json. Plus précisément, il va ajouter une entrée de résolution:
À présent, lors de la prochaine installation de bower, il n’y aura pas de question interactive sur la version que je veux, car j’ai déjà résolu le problème pour que mon application soit la version 1.5.1.
Vous devriez mettre à jour Bower (ça marche pour moi):
bower update
Supprimez votre répertoire/bower_components et exécutez bower install
à nouveau ..
Un bidouillage mais qui fonctionne quand même .. !!
Vous pouvez exécuter la commande install et s’il vous invite à sélectionner une version, utilisez (!) Le point d’exclamation comme préfixe pour option. Par exemple! 3 pour la troisième option . Cela serait alors ajouté au fichier bower.json de votre application et résoudrait le conflit.
J'espère que cela t'aides.
Essayez d'abord ceci:
npm installer -g bower
Si la solution ci-dessus ne fonctionne pas, essayez:
mise à jour de bower