Wie aktualisiere ich bower.json mit installierten Paketen?

129

In meinem Projekt habe ich bowerKomponenten ohne Speicheroption installiert . Nun möchte ich ein Update auf bower.json?

Wie kann ich bower.json mit installierten Paketen aktualisieren?

Konga Raju
quelle
2
Das Fehlen eines einstufigen Weges, um dies zu tun, scheint ein ziemlicher Mangel zu sein. Da es einen Deinstallationsbefehl gibt, scheint es immer schwieriger und nie einfacher zu sein , bower installohne zu laufen --save.
Chris
1
Wenn Sie nichts in Ihrer bower.json haben, entfernen Sie es einfach und geben Sie bower initIhre Konsole ein.
Jean-Luc Barat

Antworten:

146

Listen Sie einfach Ihre Abhängigkeiten auf:

bower list

Dann sollten Sie alle Installationsbefehle mit dem Parameter '--save' wie folgt ausführen:

bower install bootstrap --save

Es ist eine harte Arbeit, aber wenn Sie tausend Abhängigkeiten haben, können Sie ein Skript erstellen, um die Aufgabe zu automatisieren.

Helder Robalo
quelle
Dies ist eine großartige Antwort. Vielen Dank!
Jessegavin
1
Ich fand, dass dies mit nur ~ 10 Paketen problematisch wurde, da es nicht offensichtlich ist, welche Pakete als Abhängigkeiten von anderen heruntergeladen wurden, was dazu führte, dass bower nach Versionsnummern fragte. Selbst mit den richtigen Antworten war die resultierende Datei bower.json nicht ganz richtig. Ich habe mit Sebastiens Antwort gearbeitet, die für mich funktioniert hat.
gb2d
Die Abhängigkeiten, die nicht in bower.json deklariert wurden, werden durch das "fremde" Tag auf der Konsole gekennzeichnet.
Otaviodecampos
135

Ein kleiner Trick, wenn Sie dafür kein Skript schreiben möchten:

Bevor Sie etwas tun, benennen Sie Ihre bower.json beispielsweise in bower2.json um.

dann kannst du machen:

$ bower init

(Erstellen Sie automatisch eine bower.json-Datei).

Beachten Sie, dass alle Fragen mit Ihrer aktuellen Konfiguration vorab ausgefüllt sein sollten.

Wann werden Sie gefragt:

aktuell installierte Komponenten als Abhängigkeiten festlegen? Sag ja,

Sie haben jetzt alle Ihre Abhängigkeiten in der neuen Datei bower.json (und Sie können überprüfen, ob mit der alten Datei bower2.json alles in Ordnung ist).

Sebastien Horin
quelle
Was ist die Registrierungsoption, die dabei erwähnt wird? Ich hatte angenommen, dass dieser Befehl nur eine lokale Funktion ausführen würde. Ich habe mich entschieden, meine mit dieser praktischen Frage privat zu halten, möchte aber erfahren, was das bedeutet - gibt es eine Art Internet-Bower-Registrierung? Ich denke nur inline, dass Bower so eine npm-Installation machen könnte.
landete
2
@landed: das wäre die Registrierung für Bower- Pakete ( bower.io/search ) HTH
FÜR den
Das hat bei mir nicht geklappt, weil ich bower.jsonnicht aufgelistet habe angular:'1.5.5'. Dies liegt daran, dass ich angular-animateinstalliert hatte und da es von der angular 1.5.5Laube abhängt, entschied ich mich , nicht angularin die aufzunehmen bower.json(wenn man bedenkt, dass es sowieso installiert wird, wenn jemand eine bower installdafür macht bower.json). Dies ist ein Problem, wenn jemand, angular-animatevon dem entfernt wird, bower.jsonin diesem Fall bowerauch nicht installiert angularwird, da es nicht aufgeführt ist.
Akash
35

Ein etwas mühsamer Weg ist es, auszuführen bower list, nach Paketen zu suchen, die als fremd gekennzeichnet sind, und diese manuell zu den Abhängigkeiten in der hinzuzufügen bower.json.

Wenn es viele fremde Pakete gibt, ist es möglicherweise einfacher, dies zu umgehen, indem Sie " Ja " ausführen bower initund auf "Aktuell installierte Komponenten als Abhängigkeiten festlegen?" Antworten . Dies nimmt Ihre aktuelle , liest sie und erstellt dann eine neue unter Verwendung der Informationen aus der alten. Im Idealfall haben Sie also dieselbe Datei nur mit Fremdbower.json Paketen hinzugefügt.

Warnung : Erstens kann dabei etwas verloren gehen (z devDependecies. B. ). Zweitens wird dies in der letzten Version von bower (v1.2.7) nicht der Fall sein die aktuellen beibehalten! Ich denke, es ist ein Fehler. Sie können die alte Datei jedoch speichern und (manuell) mit der generierten zusammenführen.

Sie sollten auch nach einer Option oder etwas anderem fragen, indem Sie ein Bower-Problem öffnen, da dies von vielen Entwicklern begrüßt wird.

Robin Pokorny
quelle
3
Hinweis: In Laube 1.3.3 bleiben die aktuellen Paketinformationen erhalten.
Bill Keller
27

Sie können Bower-Check-Updates verwenden (Sie benötigen node.js auf Ihrem Computer installiert):

bower-check-updates ist ein Dienstprogramm, das eine bower.json automatisch mit der neuesten Version aller Abhängigkeiten anpasst

Bower-Check-Updates - ist eine Abzweigung von npm-Check-Updates , es ist also alles das Gleiche, aber Updates bower.jsonstattpackage.json

npm install -g bower-check-updates
bower-check-updates -u
bower install 

Dies wird bower-check-updatesglobal installiert , sodass Sie es von überall aus starten können.

PS Weitere Informationen zu Npm-Check-Updates finden Sie in diesem Thema

Sergei Panfilov
quelle
Vielleichtbower install
Ámon Tamás
@ ÁmonTamás bower installhat bower.json nicht aktualisiert.
Sergei Panfilov
5
Der Autor von Bower-Check-Updates hat das Projekt zugunsten von npm-Check-Updates abgelehnt, was die Aktualisierung von bower.json unterstützt.
Congusbongus
2

Wenn Sie nicht so viele Bower-Pakete installiert haben, versuchen Sie zu schreiben bower install [package_name] --save. Dadurch wird nur Ihre Datei bower.json aktualisiert.

Superjisan
quelle
0

Nachdem bower-check-updates -umüssen Sie bower installstatt laufennpm install

Ámon Tamás
quelle