Comment installer le dernier état (non marqué) d'un dépôt en utilisant Bower?

163

J'ai un très petit dépôt dans lequel je fais tout le travail de développement dans la branche master et utilise des balises comme points "stables" dans l'histoire.

Je suppose que par défaut, Bower semble récupérer la dernière version balisée d'un dépôt. J'essaye d'obtenir le commit le plus récent dans la branche master.

J'ai essayé d'exécuter tout cela, dans tous les ordres imaginables:

bower cache-clean mypackage
bower install mypackage --force-latest
bower install mypackage --force --force-latest
bower install mypackage --force

J'ai également essayé d'ajouter latestà mon fichier bower.json:

"dependencies": {
  "mypackage": "latest"
}

Et puis en cours d'exécution:

bower update mypackage

Peu importe ce qu'il semble, obtenez toujours le dernier état étiqueté.

Comment obtenir l'état le plus récent, le plus à jour et non balisé du projet?

Johnny
la source
1
Documentation complète github.com/bower/bower.json-spec
Jaider

Réponses:

220

Spécifiez un git commit SHA au lieu d'une version:

bower install '<git-url>#<git-commit-sha>'

Exemple:

bower install 'git://github.com/yeoman/stringify-object.git#d2895fb97d'

Vous pouvez également spécifier une branche au lieu d'un SHA, mais ce n'est généralement pas recommandé sauf si elle est en développement et que vous contrôlez toutes les parties.

Sindre Sorhus
la source
1
Oui, j'ai lu toute la discussion sur tout cela dans le suivi des problèmes GH hier soir et j'ai installé le bower # 0.9.3-rc0. Vous avez raison monsieur. Merci!
Johnny
32
À présent, vous pouvez également simplement utiliser <git-url>#<branch-name>au lieu d'ajouter un ID SHA. Vous pouvez donc également utiliser <git-url>#masterpour suivre la branche principale.
MKroehnert
3
Cela ne semble pas fonctionner pour mon référentiel privé. J'essaie de spécifier l'ID de validation. Il renvoie une erreur "fatal: la référence n'est pas un arbre:". On dirait qu'il essaie de trouver la révision dans le référentiel git du conteneur.
Nilesh
1
J'obtiens le fatal: la référence n'est pas non plus un arbre. Assez ennuyeux.
Seiyria
comment forcer l'installation d'une ancienne version dans le package.json si vous en avez déjà une plus récente?
SuperUberDuper
112

Oui, vous pouvez pointer vers l'url git, ou utiliser le raccourci name / repo (pour les dépôts github):

bower.json

{
  "name": "bower-test",
  "dependencies": {
    "dpm": "[email protected]:okfn/dpm.git",
    "docker-nmpjs": "terinjokes/docker-npmjs"
  }
}

Plus dans la documentation

Comme @roi l'a noté dans les commentaires, vous pouvez utiliser l' --saveindicateur pour ajouter automatiquement des dépendances bower.json, par exemplebower install terinjokes/docker-npmjs --save

Nick Tomlin
la source
1
et la sélection d'une version est-elle possible?
Tjorriemorrie
12
@Tjorriemorrie Oui, vous pouvez suivre le <package>#<revision>.format répertorié dans la documentation. Donc, pour utiliser la dernière version de jQuery dans la branche "master", vous feriez: [email protected]:jquery/jquery.git#masterou jquery/jquery#masterpour faire court.
Nick Tomlin
6
je dirais que vous aurez plus de chance en utilisant le cli pour l'introduire dans votre bower.json ..... bower installer terinjokes / docker-npmjs --save
Roi
1
Nous pouvons également mentionner les releases / tags en utilisant le symbole # comme ceci -xyz-components": "[email protected]:username/reponame.git#0.4.5
Nitin
17

Si vous utilisez un fichier bower.json, vous spécifiez la dernière version d'une branche avec une ligne dans les dépendances ou devDependencies selon la configuration de votre projet:

"angular-bootstrap": "[email protected]:angular-ui/bootstrap.git#bootstrap3",

Ensuite, lorsque vous exécutez bower installla dernière version de cette branche est installée. Ce serait une branche bootstrap3de angular-uidans cet exemple.

wibobm
la source
Cela fonctionne localement mais échouera sur Heroku. Vous devriez utiliser le à la git://github.com/angular-ui/bootstrap.git#bootstrap3place.
Michael Yagudaev
13
bower install --save package-name#master

ajoute ceci:

"dependencies": {
  "package-name": "master"
}
elado
la source
10

en utilisant bower.json:

"dependencies": {
    "jquery.slimscroll": "latest",
    "jQuery": "1.11",
    "fullPage.js": "[email protected]:overbyte/fullPage.js.git#1d6bbac3d4c3b1d3d7d4096cdbcabd1c3914393f",
}

"[library name - in this case a forked version of fullpage.js]" : "[from git clone box in github][#commit number if required - without this you will get latest tagged version]"
obie
la source