通常、bower.json
ファイルはいくつかの依存関係を指定しますが、これらは通常、bowerパッケージのさまざまなバージョンを使用できるように表現されます(例:>=1.0
、これはバージョン1.0以降のものを意味します。
現在、このシステムに実際にインストールされているバウアーパッケージのバージョンを見つける必要がある自動プロセスがあります。
理想的には標準のUnixコマンドラインツール/ bowerコマンドを使用して、これをプログラムで(バージョン自体だけで)見つけるにはどうすればよいですか?
bower info <thepackagename>
はnotを表示します-現在、bowerリポジトリから利用可能なものに関する情報を表示します(たとえば、bower info apackageIdonthaveinstalled
バージョン番号を含む有効なJSON構造が引き続き表示されます。
cat bower_components/thepackagename/bower.json | node_modules/json/lib/json.js version
は一部のパッケージ(npmパッケージjson
がインストールされていると仮定)で機能しますが、すべてではありません(たとえば、jquery 2.2.0のbowerパッケージにはbower.jsonが含まれていません)。
私が今見つけた最良のアプローチは、これまでに出くわしたすべてのパッケージで機能するようです:
cat bower_components/thepackagename/.bower.json | node_modules/json/lib/json.js version
(.
の余分な.bower.json
に注意してください)。
Bowerは.bower.json
にインストールされたパッケージに関するメタデータを保存し、インストールされたバージョンを含むように見えます。
これまでに思いついた最高のものは:
bower list | grep jquery | Perl -pe 's/.*jquery#(.*?) .*$/$1/'
(たとえば、興味のあるパッケージがjquery
だった場合)。
それはさまざまな理由でかなりいです:
パッケージ名を繰り返す必要があります(これはおそらく、行をフィルター処理するより良いPerlスクリプトで改善される可能性がありますが、私は怠け者です)。
bower list
は、興味のあるパッケージだけでなく、インストールされているすべてのパッケージに関する情報を取得します。残りの情報は破棄されます。
bower list
は、レジストリを確認するためにインターネット接続が必要なようです。それ以外の場合は失敗します。
これ、特に最後の点を改善できるかどうかを確認したいと思います。
「bower list --json = 0 --offline」を試したことはありますか。
すべてのbowerパッケージ情報がリストされます。