web-dev-qa-db-ja.com

実際にインストールされているbowerパッケージのバージョンを確認するにはどうすればよいですか?

通常、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が含まれていません)。

27
Andrew Ferrier

私が今見つけた最良のアプローチは、これまでに出くわしたすべてのパッケージで機能するようです:

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は、レジストリを確認するためにインターネット接続が必要なようです。それ以外の場合は失敗します。

これ、特に最後の点を改善できるかどうかを確認したいと思います。

6
Andrew Ferrier

これを行うgrepコマンドを次に示します。grep "version\"\:" bower_components/thepackagename/.bower.json

また、プロジェクトのすべてのバウアーコンポーネントのバージョンを表示するコマンド-このリストは、便利なCIアーティファクトである可能性があります:grep "version\"\:" bower_components/*/.bower.jsonenter image description here

26
Artem Vasiliev

「bower list --json = 0 --offline」を試したことはありますか。

すべてのbowerパッケージ情報がリストされます。

7
yujohnnyzhou