Wie installiere ich den neuesten (nicht getaggten) Status eines Repos mit Bower?


163

Ich habe ein sehr kleines Repo, in dem ich alle Entwicklungsarbeiten im Master-Zweig erledige und Tags als "stabile" Punkte in der Geschichte verwende.

Ich denke, standardmäßig scheint Bower die neueste getaggte Version eines Repos abzurufen . Ich versuche, das neueste Commit in der Hauptniederlassung abzurufen.

Ich habe versucht, all dies in jeder denkbaren Reihenfolge auszuführen:

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

Ich habe auch versucht latest, meiner Datei bower.json Folgendes hinzuzufügen:

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

Und dann rennen:

bower update mypackage

Egal, wie es scheint, es wird immer der neueste Tag-Status angezeigt.

Wie erhalte ich den neuesten, aktuellsten und nicht getaggten Status des Projekts?


1
Vollständige Dokumentation github.com/bower/bower.json-spec
Jaider

Antworten:


220

Geben Sie einen Git Commit SHA anstelle einer Version an:

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

Beispiel:

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

Sie können auch einen Zweig anstelle eines SHA angeben. Dies wird jedoch im Allgemeinen nicht empfohlen, es sei denn, er befindet sich in der Entwicklung und Sie steuern alle Teile.


1
Ja, ich habe die ganze Diskussion über all das im GH Issue Tracker letzte Nacht durchgelesen und die Laube # 0.9.3-rc0 installiert. Sie sind richtig, Sir. Vielen Dank!
Johnny

32
Inzwischen können Sie auch einfach <git-url>#<branch-name>eine SHA-ID hinzufügen, anstatt sie hinzuzufügen. Sie können also auch <git-url>#masterden Hauptzweig verfolgen.
MKroehnert

3
Dies scheint jedoch für mein privates Repository nicht zu funktionieren. Ich versuche, die Commit-ID anzugeben. Es wird der Fehler "fatal: Referenz ist kein Baum:" zurückgegeben. Sieht so aus, als würde versucht, die Revision im Git-Repo des Containers zu finden.
Nilesh

1
Ich bekomme das Tödliche: Referenz ist auch kein Baum. Ziemlich nervig.
Seiyria

Wie erzwingen Sie die Installation einer älteren Version in package.json, wenn Sie bereits eine neuere haben?
SuperUberDuper

112

Ja, Sie können auf die Git-URL verweisen oder die Kurzform name / repo verwenden (für Github-Repos):

bower.json

{
  "name": "bower-test",
  "dependencies": {
    "dpm": "git@github.com:okfn/dpm.git",
    "docker-nmpjs": "terinjokes/docker-npmjs"
  }
}

Mehr in den Dokumenten

Wie @roi in den Kommentaren vermerkt, können Sie das --saveFlag verwenden, um automatisch Abhängigkeiten hinzuzufügen bower.json, zbower install terinjokes/docker-npmjs --save


1
und ist die auswahl einer version möglich?
Tjorriemorrie

12
@Tjorriemorrie Ja, Sie können dem <package>#<revision>.in den Dokumenten aufgeführten Format folgen . Wenn Sie also die neueste Version von jQuery im Zweig "master" verwenden möchten, tun Sie Folgendes: git@github.com:jquery/jquery.git#masteroder jquery/jquery#masterkurz:
Nick Tomlin

6
Ich würde sagen, Sie werden mehr Glück haben, wenn Sie die CLI verwenden, um sie in Ihre bower.json zu bekommen ..... bower install terinjokes / docker-npmjs --save
Roi

1
Wir können die Releases / Tags auch mit dem # -Symbol wie xyz-components": "git@github.sample.com:username/reponame.git#0.4.5
Nitin


17

Wenn Sie eine bower.json-Datei verwenden, geben Sie die neueste Version eines Zweigs mit einer Zeile in den Abhängigkeiten oder devDependencies an, je nach Projektkonfiguration:

"angular-bootstrap": "git@github.com:angular-ui/bootstrap.git#bootstrap3",

Wenn Sie dann bower installdie neueste Version dieses Zweigs ausführen , wird diese installiert. Das wäre Zweig bootstrap3des angular-uiin diesem Beispiel.


Dies funktioniert lokal, schlägt jedoch bei Heroku fehl. Sie sollten git://github.com/angular-ui/bootstrap.git#bootstrap3stattdessen die verwenden.
Michael Yagudaev

13
bower install --save package-name#master

fügt hinzu:

"dependencies": {
  "package-name": "master"
}

10

mit bower.json:

"dependencies": {
    "jquery.slimscroll": "latest",
    "jQuery": "1.11",
    "fullPage.js": "git@github.com:overbyte/fullPage.js.git#1d6bbac3d4c3b1d3d7d4096cdbcabd1c3914393f",
}

wo

"[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]"
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.