Sollten bower_components gitignored werden?

157

Wäre es bower.jsonempfehlenswert , nur die Datei zu behalten und das gesamte bower_componentsVerzeichnis zu speichern ?

Pierre de LESPINAY
quelle
Ich habe gerade ein offizielles Symfony-Kochbuch gesehen , das genau diese Frage beantwortet und zitiert: "Derzeit sollten Sie wahrscheinlich die von Bower heruntergeladenen Assets .gitignore
festschreiben,

Antworten:

149

Auf der offiziellen Bower-Seite heißt es:

NB Wenn Sie kein Paket erstellen, das von anderen verwendet werden soll (z. B. wenn Sie eine Web-App erstellen), sollten Sie installierte Pakete immer in der Quellcodeverwaltung einchecken .

Schauen Sie sich unbedingt den Link im Angebot an, in dem einige Vor- und Nachteile besprochen werden. Der wichtigste Vorteil ist, dass durch das Einchecken sichergestellt wird, dass Ihre Abhängigkeiten immer verfügbar sind, solange Ihr Repository verfügbar ist. Egal was mit Bower, GitHub oder was auch immer passiert, es würde sonst benötigt.

TimWolla
quelle
1
Vielen Dank für diesen interessanten Artikel. Im Moment haben wir also noch keine "Sperrdatei", die dem Einfrieren der Versionen entspricht.
Pierre de LESPINAY
1
@PierredeLESPINAY Nur für die oberste Ebene. Was fehlt, entspricht der Funktion zum Schrumpfen von npm.
Passy
3
Sie sagen dies auch in ihrem Blog-Beitrag "Letztendlich liegt es an Ihnen, ob Sie Ihr gesamtes / bower_components-Verzeichnis einchecken oder nicht ...".
Krishnaraj
3
Der Grund für das Einchecken ist, dass die Bibliothek eines Tages möglicherweise aus dem Internet verschwindet oder dass es zu Ausfallzeiten kommt, die wiederum zu Buildfehlern führen können. Als Maven / Gradle-Benutzer denke ich nie daran, Abhängigkeiten einzuchecken.
Krishnaraj
7
Der Rat auf der offiziellen Bower-Seite zum Einchecken installierter Pakete in die Quellcodeverwaltung wurde 2014 entfernt: github.com/bower/bower.github.io/commit/…
Benutzer
52

In der .gitignore- Datei in einem neu generierten Yeoman AngularJS-Projekt werden bower_components (und node_modules) aufgelistet, die ignoriert werden sollen (wenn Sie Yeoman nicht kennen, handelt es sich um ein sehr seriöses Webgerüst-Tool für moderne Webapps, das ist also gut genug für mich!):

.gitignore

node_modules
dist
.tmp
.sass-cache
bower_components
user12121234
quelle
9

Es gibt eine Zeit und einen Ort für beide Ansätze. Für Yeoman ist es angemessen, sich auf bower.json zu verlassen, da es ein Werkzeug in einer Toolchain ist und mit dem Bower-Ökosystem leben und atmen muss. Für eine bereitstellbare Webanwendung empfiehlt es sich im Allgemeinen, Abhängigkeiten festzuschreiben und mehr Kontrolle zu behalten.

Hier ist ein guter Artikel, den ich mag und der dies diskutiert.

Joshua David
quelle
6

Wenn Sie Grunt und Node mit Bower verwenden, ist es sinnvoll, bower_components in Ihren .gitignore einzufügen, da beim Ausführen von Grunt Serve oder Grunt Build die Abhängigkeiten für Sie berücksichtigt werden. Ich bin sicher, dass sie in Yeoman hinzugefügt werden der .gitignore

Yves
quelle
5

Der Yeoman- Generator hat die .gitignore- Datei mit bower_components vorab gefüllt, aber auch mit anderen Verzeichnissen, von denen ich denke, dass sie für eine endgültige App (wie www) benötigt werden, also habe ich einige Nachforschungen angestellt.

Ich habe festgestellt, dass www / index.html eine minimierte Version der app / index.html ist. Das App-Verzeichnis und sein Inhalt (einschließlich bower_components) enthalten die Quelldateien, die für das Ausgabeverzeichnis (www) benötigt werden. Sie schreiben Quellverzeichnisse in die Quellcodeverwaltung (dh git), aber nicht in generierte Dateien (dh www). Paketmanager wie bower und npm sollen während der Erstellungs- / Generierungsphase verwendet werden, und ihre Artefakte sollen nicht in die Quellcodeverwaltung eingecheckt werden.

Letztendlich ist die Quelle, die Sie in git einchecken, die Mindestkonfiguration, die erforderlich ist, um den Rest des Projekts für Entwicklungs- oder Bereitstellungszwecke zu erstellen.

Erich Cervantez
quelle
0

Es ist gut, /bower_componentsdir zu ignorieren und nur einzuchecken bower.jsonund zu bower-locker.bower.jsonarchivieren, wenn Sie eine Sperrdatei mit dem von Shawn Lonas geschriebenen Bower-Locker erstellen .

Vor der Erstellung des Bower -Locker gab es einen Nachteil, der durch ein Problem verursacht wurde , bei dem die Bower keine Schrumpffolienfunktion hatte, das jedoch durch die obige Bibliothek gemindert werden kann.

Führen Sie die folgenden Befehle aus, um dies zu erreichen:

npm install bower-locker -g

oder

yarn global add bower-locker

Generieren Sie dann eine Sperrdatei basierend auf der vorhandenen bower.jsonDatei, indem Sie Folgendes ausführen:

bower-locker lock

Die Originaldatei bower.jsonwird in umbenanntbower-locker.bower.json

Joel Handwell
quelle