webentwicklung-frage-antwort-db.com.de

Soll bower_components gitignored werden?

Wäre es eine gute Praxis, nur die bower.json Datei und gitignore das ganze bower_components Verzeichnis?

157

Die offizielle Bower-Seite erklärte:

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

Schauen Sie sich unbedingt den Link im Zitat an, in dem einige Vor- und Nachteile erläutert werden. Das Hauptargument ist, dass das Einchecken sicherstellt, dass Ihre Abhängigkeiten immer verfügbar sind, solange Ihr Repository verfügbar ist. Egal, was mit Bower, GitHub oder was sonst noch benötigt wird.

148
TimWolla

In der . Gitignore - Datei in einem neu generierten Yeoman AngularJS-Projekt sind bower_components (und node_modules) aufgelistet, die ignoriert werden sollen (falls Sie keine angeben) Ich weiß nicht, Yeoman, es ist ein sehr seriöses Web-Gerüst-Tool für moderne Webapps, das ist also gut genug für mich!):

. gitignore

node_modules
dist
.tmp
.sass-cache
bower_components
52
user12121234

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 Toolkette ist und mit dem Bower-Ökosystem leben und atmen muss. Bei einer bereitstellbaren Webanwendung empfiehlt es sich im Allgemeinen, Abhängigkeiten festzulegen und mehr Kontrolle zu behalten.

Hier ist ein guter Artikel das bespricht ich gerne.

9
JoshuaDavid

Wenn Sie Grunt und Node mit Bower verwenden, ist es sinnvoll, bower_components in Ihren .gitignore zu setzen, da beim Ausführen von grunt servieren oder grunzen bauen es kümmert sich um die Abhängigkeiten für Sie, ich bin sicher, das ist der Grund, warum sie in Yeoman hinzufügen es an den .gitignore

6
Yves

Der Yeoman Generator füllte die .gitignore Datei mit bower_components vor, aber es füllte auch andere Verzeichnisse vor, denke ich würde für eine endgültige App (wie www) benötigt, also habe ich ein paar Nachforschungen angestellt.

Ich habe festgestellt, dass www/index.html eine verkleinerte Version der app/index.html ist. Das App-Verzeichnis und sein Inhalt (einschließlich bower_components) enthält die für das Ausgabeverzeichnis (www) erforderlichen Quelldateien. Sie übergeben Quellverzeichnisse an die Quellcodeverwaltung (d. H. Git), generieren jedoch keine Dateien (d. H. Www). Paketmanager wie bower und npm sollen während der Build-/Generierungsphase verwendet werden, und ihre Artefakte sollen nicht in die Quellcodeverwaltung eingecheckt werden.

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

5
Erich Cervantez

Es ist gut, das Verzeichnis /bower_components Zu ignorieren und nur die Dateien bower.json Und bower-locker.bower.json Einzuchecken, wenn Sie eine Sperrdatei mit Bower-Locker geschrieben von - erstellen. Shawn Lonas .

Vor der Erstellung von Bower-Locker gab es einen Nachteil, der durch das Problem Bower keine Schrumpffähigkeit verursacht wurde, der jedoch durch die obige Bibliothek gemildert 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.json - Datei, indem Sie Folgendes ausführen:

bower-locker lock

Die ursprüngliche bower.json - Datei wird in bower-locker.bower.json Umbenannt.

0
Joel Handwell