Warum sollte ich Bower verwenden? [geschlossen]

32

Ich kann die Vorteile eines Paketmanagers wie Pythons pip, Knotens npmoder Ruby Gems voll und ganz einschätzen , da er viel mehr tut, als nur Dateien zum Anwendungspfad hinzuzufügen.

Vielleicht verpasse ich den Punkt, oder ich bin stumpf, aber hier sind die Negative, die ich sehen kann:

  • Separater Schritt beim Erstellen eines Projekts
  • Separate Abhängigkeit zur Installation über einen anderen Paketmanager (yo dawg)
  • Mehr Unordnung in den Projekten wurzeln mit bower.jsonund / oder.bowerrc
  • Vertrauen Sie darauf, dass die Registrierung aktuell, korrekt und verfügbar ist
  • Einige Importe / Verweise auf Bilder funktionieren nicht
  • Enorme Überschneidung mit npm und oft unklar, welche Ressource wann verwendet werden soll

Die positiven Aspekte, die ich sehen kann, sind folgende:

  • Ich muss die Abhängigkeiten nicht manuell herunterladen
  • Optional können Sie Pakete als Teil des Gerüsts basierend auf Benutzeranweisungen oder Ähnlichem installieren

Ich würde wirklich gerne wissen, welche Vorteile ich nicht kenne, und ich sollte sagen, ich versuche nicht, provokativ zu sein, ich möchte es wirklich wissen.

Wil
quelle
1
Mike Partridge
Letztendlich beinhalten alle Paketmanager, die Sie erwähnen, das Herunterladen von Abhängigkeiten, und sie teilen einige der gleichen "Negative", die Sie für Bower aufgelistet haben. Ebenso teilt Bower einige der Vorteile von npm, pip und rubygems: Bower erleichtert beispielsweise das Aktualisieren Ihrer Abhängigkeiten auf die neueste Version (dies ist eine große Version) und reduziert die Unordnung in Ihrem Git-Repo erheblich, seit Sie dies tun Abhängigkeitscode muss nicht eingecheckt werden.
sffc
6
Es ist eine Schande, dass diese Frage als "primär meinungsbasiert" geschlossen wurde. Das OP bittet um Expertenmeinung. "Wie unterstützt mich das im Entwicklungsprozess?"
Dave Kanter
Es sieht so aus, als ob der Trend dahin geht, dass Sie kein Bower verwenden sollten, es hat keine Werkzeuge oder Vorteile gegenüber der Verwendung von npm in Kombination mit Browserify. Es scheint, dass die Branche gesprochen hat und die Anzahl der Module für Bower sinkt und Npm und Browserify wird zum Standard: quora.com/Why-use-Bower-when-here-is-npm
Brian Ogden

Antworten:

12

Aus der README :

Bower ist ein Paketmanager für das Web. Es bietet eine generische, nicht angepasste Lösung für das Problem der Front-End-Paketverwaltung, während das Paketabhängigkeitsmodell über eine API verfügbar gemacht wird, die von einem Build-Stack mit höherer Meinung verwendet werden kann. Es gibt keine systemweiten Abhängigkeiten, es werden keine Abhängigkeiten zwischen verschiedenen Apps geteilt, und der Abhängigkeitsbaum ist flach.

Bower läuft über Git und ist paketunabhängig. Eine verpackte Komponente kann aus einem beliebigen Asset-Typ bestehen und einen beliebigen Transporttyp verwenden (z. B. AMD, CommonJS usw.).

Bower bietet viele Vorteile anderer Abhängigkeitsmanager. Ich bin sicher, dass es andere gibt, aber die Vorteile, die ich bisher bemerkt habe, umfassen:

  • Vereinfachen Sie das sogenannte deklarative Abhängigkeitsmanagement. dh du deklarierst deine Abhängigkeiten in bower.json, damit andere Dinge sie leicht bestimmen können
  • Es müssen keine Abhängigkeiten zur Versionskontrolle festgelegt werden
  • Die semantische Versionierung wird verwendet, um einen Bereich akzeptabler Versionen für eine Abhängigkeit zu definieren, wodurch die Aktualisierung auf neuere Versionen innerhalb des definierten Bereichs vereinfacht wird
  • Keine Notwendigkeit, verschiedene Builds zu lokalisieren (Debugging, Minimierung usw.)
  • Einfach zu verwendende verschiedene Builds einer Abhängigkeit für dev vs. prod
  • Sie können die Datei bower.json verteilen und jeder kann mit einer einfachen "Bower-Installation" auf den neuesten Stand kommen.
Mike Partridge
quelle
2
Ich wünschte auf jeden Fall, ich hätte die Frage weniger provokativ geschrieben. Wirklich, ich denke, der entscheidende Vorteil, den ich verpasst habe, ist die Verwendung der API als Teil eines Build- / Scaffolding-Prozesses. Ich würde gerne irgendwo in der Wildnis davon Gebrauch machen.
Wil
Ich wurde auf Bower aufmerksam, als ich eine Angular-Web-App mit dem Angular-Generator für Yeoman bootete. Wenn Sie dies versuchen, erhalten Sie möglicherweise eine Vorstellung davon, wie es verwendet werden kann.
Mike Partridge
Ich habe zuvor Yeoman und Grunt Init verwendet, und vielleicht bedeuteten meine Anforderungen nur, dass die Front-End-Komponenten niemals abweichen würden - sie waren immer Angular, jQuery, Mocha usw., aber das kann ich sehen, wenn ein Benutzer dies möchte Tauschen Sie ein Testframework aus einer Auswahlliste für Bootstrap-Eingabeaufforderungen aus. Dies wäre hilfreich. Ich denke, der Hauptvorteil, der Sinn macht, ist Bootstrap-Optionen und Modifikatoren. Findest du das fair?
Wil
2
Auch Portabilität. Sie können die Datei bower.json verteilen und jeder kann mit einer einfachen "Bower-Installation" auf den neuesten Stand kommen.
Dave Kanter
1
s/bower/npm/iund diese antwort ist immer noch zu 100% wahr.
Qix