© saicle/Shutterstock.com
Kolumne: The Good Parts

Kolumne: The Good Parts


JavaScript-Projekte werden von Tag zu Tag komplexer und größer. Mit dieser Entwicklung geht die Notwendigkeit des Einsatzes externer Libraries sowie Frameworks einher. Diese ermöglichen es, den gewünschten Funktionsumfang schnell und effizient zu erzielen. Im JavaScript-Umfeld existiert eine geradezu aberwitzige Menge an unterschiedlichsten kleinen Bibliotheken, die die tägliche Arbeit erleichtern. Durch die Verwendung solcher Bibliotheken entsteht jedoch auch neue Komplexität: das Management dieser unterschiedlichen Pakete. Der Paketmanager Bower hilft dabei, damit dieser Prozess nicht in Arbeit ausartet.

Es existiert kaum eine Sprache im Bereich der Web­entwicklung, die einen derart großen Fundus an Komponenten, Bibliotheken und kleinen Helferlein aufzuweisen hat, wie JavaScript. Viele dieser externen Ressourcen stehen unter Lizenzen bereit, die nahezu jedem Projekt – ob kommerziell oder Open Source – die Verwendung gestatten. Umso interessanter ist es, diese Pakete einzusetzen, um schneller an das gewünschte Entwicklungsziel zu gelangen. Häufig ist es einfach nicht erforderlich, das Rad neu zu erfinden.

Durch die schiere Anzahl an unterschiedlichen Bibliotheken und Codeschnipseln ergeben sich diverse neue Probleme. Oft sind die besagten JavaScript-Bibliotheken relativ kompakt und auf exakt einen Einsatzzweck spezialisiert. Natürlich gibt es auch größere Framework-ähnliche Vertreter wie Backbone, Angular, jQuery und Ember, jedoch verwendet man von diesen häufig nur ein einziges, während diverse Variationen unterschiedlichster sonstiger Hilfsmittel zum Einsatz kommen. Es gilt also, den Überblick über aktuelle Versionen aller in Verwendung befindlicher Komponenten zu behalten, diese entsprechend bereitzustellen und mit der eigenen Applikation zu verknüpfen. Diese Tätigkeit kann sehr schnell in Arbeit ausarten, die niemand gerne macht.

Das Ergebnis: Häufig wird der Einsatz externer Bibliotheken gescheut, es werden veraltete Versionen eingesetzt, die möglicherweise bekannte Sicherheitslücken haben, oder es wird freiwillig auf elementare neue Features verzichtet.

Die Lösung: Der Einsatz eines Systems, das derlei Verwaltungstätigkeiten übernimmt und dabei nahezu automatisch die lästige Arbeit erledigt. Bower [1] ist ein Paketmanager, der von Twitter genau zu diesem Zweck entwickelt wurde. Neben einem großen Repository an Paketen verfügt Bower außerdem über alle nötigen Mittel zur Definition, Installation und Verwaltung verschiedenster externer Abhängigkeiten.

Bower

Im Vergleich zu anderen Systemen dieser Art legt Bower seinen Schwerpunkt auf das Paketmanagement. Bower verwaltet externe Abhängigkeiten. Sonst tut es nichts. Es ist nicht dafür verantwortlich, Code zusammenzufügen oder gar zu minifizieren. Es löst auch nicht mittels RequireJS [2] oder ähnlichen Tools bibliotheksinterne Abhängigkeiten auf. Bower ist nur dafür zuständig, externe Abhängigkeiten in definierten Versionen zu beschaffen und bereitzustellen. Für alles weitere sorgt der Entwickler selbst, ggf. mit anderen Tools wie Grunt [3].

Diese Herangehensweise hat große Vorteile gegenüber alternativen, ähnlich gelagerten Systemen. Denn hierdurch ist es Bower möglich, sich in nahezu jede bestehende Infrastruktur einzufügen. Es erlaubt die reibungslose Zusammenarbeit mit Build-Systemen wie Grunt, einer Abhängigkeitsverwaltung wie RequireJS und Minifyern wie UglifyJS [4].

Installation

Bower selbst ist in JavaScript geschrieben. Unter Zuhilfenahme von Node.js [5] erledigt es seine Aufgaben gezielt von der Kommandozeile aus. Nachdem Node.js installiert ist, steht automatisch auch dessen Paketverwaltungssystem npm zur Verfügung. Mit diesem lässt sich Bower bequem und unkompliziert installieren:

npm install -g bower

Der Parameter -g bewirkt eine globale Installation. Dies bedeutet, dass Bower anschließend von überall im System erreichbar ist. Im Normalfall installiert npm seine Pakete lokal zum aktuellen Projekt, was natürlich in diesem Fall nicht gewünscht ist, da es sich um ein generelles Tool handelt, das systemweit installiert werden soll.

Bower einsetzen

Nach der Installation von Bower steht das Tool als gleichnamiges Kommandozeilenwerkzeug zur Verfügung:

$ bower Usage: bower <command> [<args>] [<options>]

Unterschiedlichste Aktionen sind durch entsprechende Kommandos abrufbar. Ein häufiger Fall ist das Durchsuchen von Bowers Paket-Repository nach einem spezifischen Paket. Die Aktion search...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang