tutorial - install dependencies bower json
¿Cómo puedo saber qué versión de un paquete Bower está realmente instalada? (3)
¿Alguna vez has probado "bower list --json = 0 --offline".
Enumera todos los paquetes de información de Bower.
Normalmente, un archivo bower.json
especifica algunas dependencias, pero generalmente se expresan de modo que permiten el uso de un rango de versiones de un paquete bower (por ejemplo, >=1.0
, lo que significa algo más alto que la versión 1.0).
Tengo un proceso automatizado que necesita encontrar qué versión de un paquete Bower está realmente instalada en este sistema ahora mismo.
¿Cómo puedo averiguar esto mediante programación (solo la versión en sí), idealmente utilizando las herramientas de línea de comandos estándar de Unix / el comando bower?
bower info <thepackagename>
no muestra esto: muestra información sobre lo que está disponible actualmente en el repositorio de bower (por ejemplo, incluso si hago bower info apackageIdonthaveinstalled
, todavía mostrará una estructura JSON válida que contiene un número de versión).
cat bower_components/thepackagename/bower.json | node_modules/json/lib/json.js version
cat bower_components/thepackagename/bower.json | node_modules/json/lib/json.js version
funciona para algunos paquetes (suponiendo que el paquete npm json
esté instalado), pero no todos (por ejemplo, el paquete bower de jquery 2.2.0 no contiene un bower.json).
El mejor enfoque que he encontrado, que parece funcionar para cada paquete que he encontrado hasta ahora, es:
cat bower_components/thepackagename/.bower.json | node_modules/json/lib/json.js version
(note el extra .
en .bower.json
).
Parece que Bower almacena algunos metadatos sobre el paquete instalado en .bower.json
, y eso incluye la versión instalada.
Lo mejor que he encontrado hasta ahora es:
bower list | grep jquery | perl -pe ''s/.*jquery#(.*?) .*$/$1/''
(Si, por ejemplo, el paquete que me interesaba era jquery
).
Eso es bastante feo por una variedad de razones:
Tengo que repetir el nombre del paquete (aunque esto probablemente podría mejorarse con un mejor script de Perl que también filtre líneas, solo estoy siendo perezoso)
bower list
obtiene información sobre todos los paquetes instalados, no solo el que me interesa, el resto de la información se descarta.bower list
parece requerir conectividad a internet para verificar el registro, de lo contrario falla.
Estaría interesado en ver si esto podría mejorarse, particularmente el último punto.