Normalerweise ist ein bower.json
-Datei gibt einige Abhängigkeiten an, diese werden jedoch normalerweise so ausgedrückt, dass sie die Verwendung einer Reihe von Versionen eines Laubenpakets ermöglichen (z. B. >=1.0
, was etwas höheres als Version 1.0 bedeutet).
Ich habe einen automatisierten Prozess, der herausfinden muss, welche Version eines Bower-Pakets tatsächlich installiert auf diesem System ist.
Wie kann ich das programmgesteuert herausfinden (nur die Version selbst), idealerweise mit den Standard-Unix-Befehlszeilenprogrammen/dem Befehl bower?
bower info <thepackagename>
does not show this - zeigt Informationen darüber an, was aktuell im Bower-Repository verfügbar ist (z. B. auch wenn ich bower info apackageIdonthaveinstalled
Es wird weiterhin eine gültige JSON-Struktur mit einer Versionsnummer angezeigt.
cat bower_components/thepackagename/bower.json | node_modules/json/lib/json.js version
funktioniert für einige Pakete (vorausgesetzt, das npm-Paket json
ist installiert), aber nicht für alle (z. B. enthält das bower-Paket von jquery 2.2.0 keine bower.json).
Der beste Ansatz, den ich jetzt gefunden habe und der für jedes Paket zu funktionieren scheint, auf das ich bisher gestoßen bin, ist:
cat bower_components/thepackagename/.bower.json | node_modules/json/lib/json.js version
(Beachten Sie das Extra .
in .bower.json
).
Es scheint, dass Bower einige Metadaten über das installierte Paket in .bower.json
Speichert, einschließlich der installierten Version.
Das Beste, was ich mir bisher ausgedacht habe, ist:
bower list | grep jquery | Perl -pe 's/.*jquery#(.*?) .*$/$1/'
(Wenn zum Beispiel das Paket, an dem ich interessiert war, jquery
war).
Das ist aus verschiedenen Gründen ziemlich hässlich:
Ich muss den Paketnamen wiederholen (obwohl dies wahrscheinlich mit einem besseren Perl-Skript verbessert werden könnte, das auch Zeilen filtert, bin ich nur faul).
bower list
Ruft Informationen zu allen installierten Paketen ab, nicht nur zu dem, an dem ich interessiert bin - der Rest der Informationen wird verworfen.
bower list
Erfordert anscheinend eine Internetverbindung, um die Registrierung zu überprüfen. Andernfalls schlägt die Registrierung fehl.
Würde mich interessieren, ob dies verbessert werden könnte, insbesondere der letzte Punkt.
Haben Sie jemals versucht "Bower-Liste --json = 0 --offline".
Hier werden alle Informationen zu Laubenpaketen aufgelistet.