Bower (Software)
Bower ist ein freier Paketmanager für clientseitige Webentwicklung. Es ermöglicht das einfache Installieren und Aktualisieren von Programmbibliotheken und Frameworks, mithilfe eines in Node.js geschriebenen Kommandozeilenwerkzeugs.
Bower | |
---|---|
Basisdaten | |
Entwickler | Twitter und Mitwirkende der GitHub-Community[1] |
Erscheinungsjahr | 2012 |
Aktuelle Version | 1.8.12[2] (19. Januar 2021) |
Betriebssystem | Plattformunabhängig |
Programmiersprache | JavaScript (Node.js) |
Kategorie | Paketmanager |
Lizenz | MIT-Lizenz |
deutschsprachig | nein |
bower.io |
Funktionsweise und Konzepte
Bower wird über die Kommandozeile (Shell) gesteuert. Nachfolgend findet sich eine Auflistung der wichtigsten Befehle und Konzepte von Bower.
Installation
Bower ist ein Kommandozeilenprogramm und benötigt Node.js und wird daher mit Node Package Manager (npm) installiert, für die Installation unter unixoiden Systemen bzw. POSIX-Systemen führt man den Befehl npm install -g bower
in der Shell aus um die Installation global auszuführen.[3]
Nach der Installation steht in der Kommandozeile nun der Befehl bower
zur Verfügung.
Packages
Packages sind bei Bower einzelne Programme wie z. B. jQuery und Angular.js, also eigenständige Softwarepakete, Libraries und Frameworks.
Packages können einzeln über die Shell installiert werden, dazu navigiert man in der Shell auf den Ordner und führt bower install [package]
aus, "package" muss durch das entsprechende (zu installierende) Package ersetzt werden.
Dabei gibt es verschiedene Möglichkeiten das Package anzugeben. "Registrierte" Packages, also durch einen eindeutigen Namen bei Bower
identifiziert (dies sind meist größere/bekanntere Softwareprojekte), kann dieser Name allein angegeben werden und sieht bei jQuery z. B. so aus bower install jquery
. Es kann auch ein GitHub-Kürzel in der Form Entwickler/Projekt
angegeben werden und sieht für Angular.js wie folgt aus bower install angular/angular.js
. Darüber hinaus kann auch eine eindeutige Adresse angegeben werden, entweder eine Gitadresse (bower install git://github.com/user/package.git
) oder eine HTTP-URL (bower install http://example.com/script.js
) angegeben werden.
Projektinitialisierung und bower.json
Ein Ordner kann mit dem Befehl bower init
initialisiert werden, beim Ausführen dieses Befehls wird eine bower.json-Datei angelegt. Dies kann auch selbständig erstellt werden. Eine bower.json sieht wie folgt aus:[4]
{
"name": "my-project",
"version": "1.0.0",
"main": [
"path/to/main.js",
"path/to/main.css"
],
"private": true,
"keywords": [
"MyKeyword",
"OtherKeword"
],
"ignore": [
".jshintrc",
"**/*.txt"
],
"dependencies": {
"<name>": "<version>",
"<name>": "<folder>",
"<name>": "<package>"
},
"devDependencies": {
"<test-framework-name>": "<version>"
}
}
Dabei enthält "name"
den Projektnamen als String. "version"
erwartet einen String mit der aktuellen Version, üblicherweise im Format "Major.Minor.Patch". "main"
enthält optional den/die Pfad(e) maximal einer Datei je Typ (z. B. JavaScript, CSS,…) als String oder Array, welche als Einstiegspunkt zur Verwendung des Projektes angesehen werden kann. "private"
ist ein Boolean, wenn auf true
gesetzt gibt dies an, dass dieses Projekt nicht zur Veröffentlichung vorgesehen ist. "ignore"
nimmt einen Stringarray mit den, für den Produktivgebrauch, zu ignorierenden Dateien als Wert an. "dependencies"
sind die, als Hash anzugebenden Abhängigkeiten, die auf jeden Fall erfüllt werden müssen. "devDependencies"
sind ebenfalls als Hash zu definierenden Abhängigkeiten, die jedoch nur für die weitergehende Entwicklung (Testing, Dokumentation etc.) benötigt werden.[4]
Die "dependencies"
und die devDependencies
können auch über die Shellbefehle bower install <package> --save
, was das angegeben "package" zu den "dependencies" beziehungsweise bower install <package> --save-dev
dies fügt das angegebene "package" zu den "devDependencies" in der bower.json hinzu.[4]
Führt man den Befehl bower install
in einem Ordner aus, in dem eine (ausgefüllte) bower.json-Datei liegt, werden die "dependencies" und "devDependencies" gegebenenfalls heruntergeladen und werden standardmäßig im Ordner bower_components/
abgelegt. Das installieren der "devDependencies" kann mit der Angabe bower install -p
, wobei "p" für "production" steht verhindert werden.
Geschichte
Bower wurde von Twitter im Rahmen seiner Open-Source-Initiative im Jahr 2012 initiiert[1] und wird derzeit von einem Team aus 7 Hauptentwicklern (englisch core developer) und 121 Mitwirkenden der GitHub-Community entwickelt (Stand Ende November 2014).[5][6]
Mit der fortschreitenden Verbreitung des ECMAScript-6-Modulsystems[7] sind viele Projekte und Entwickler auf NPM in Kombination mit Bundler-Software wie Browserify bzw. Webpack umgestiegen. Das Projekt überlegte seit Juni 2016, sich selbst als deprecated zu bezeichnen.[8] Seit Mai 2017 wird auf der Projekt- und Webseite empfohlen, Yarn und Webpack als Ersatz zu verwenden.[9][10]
Name
Bower wurde nach der englischen Bezeichnung der Vogelart der Laubenvögel (englisch Bowerbirds) benannt. Bei dieser Vogelart sammelt das Männchen verschiedene farbige Gegenstände, um seine Laube möglichst prächtig zu gestalten, da sich Weibchen mit dem Bauherren der prächtigsten Laube paaren. Bower macht eigenen Angaben zufolge genau das: es sammelt die Programme (Gegenstände) und stellt sie dem Entwickler zur Verfügung um seine Anwendung (Laube) zu entwickeln.[11]
Logo
Das Logo zeigt einen Goldlaubenvogel bei seinem Balztanz und wurde von Dave DeSandro und Isaac Durazo gestaltet.[12]
Die Logoentwicklung wurde auf GitHub Gist dokumentiert.[13]
Einzelnachweise
- About. In: bower.io. Abgerufen am 29. November 2014 (englisch).
- Release 1.8.12. 19. Januar 2021 (abgerufen am 8. Februar 2021).
- Install Bower. In: Bower. Abgerufen am 29. November 2014 (englisch).
- Creating packages. In: Bower. Abgerufen am 30. November 2014 (englisch).
- Contributors. In: GitHub. Abgerufen am 29. November 2014 (englisch).
- Bower Repository on GitHub. In: GitHub. Abgerufen am 29. November 2014 (englisch).
- ECMAScript 6: New Features: Overview and Comparison. In: es6-features.org. Abgerufen am 29. Dezember 2016 (englisch, Modules: Value Export/Import. Support for exporting/importing values from/to modules without global namespace pollution.).
- Consider deprecating Bower. · Issue #2298 · bower/bower. In: GitHub. Abgerufen am 29. Dezember 2016 (englisch).
- Add yarn and webpack recommendation (#2458) · bower/bower@0bd318d. 19. Mai 2017, abgerufen am 17. März 2018 (englisch): „..psst! While Bower is maintained, we recommend yarn and webpack for new front-end projects!“
- How to migrate away from Bower? In: bower.io/blog. 2. Oktober 2017, abgerufen am 17. März 2018 (englisch).
- The Bowerbird. In: bower.io. Abgerufen am 29. November 2014 (englisch).
- Bower Logo. In: Bower. Abgerufen am 29. November 2014 (englisch).
- Dave DeSandro: Bower logo. In: gist.github.com. Abgerufen am 29. November 2014 (englisch).