通常bower.json
文件指定一些依赖项,但通常表达这些依赖项,以便它们允许使用一系列版本的bower包(例如>=1.0
,这意味着任何高于1.0的版本)。
我有一个自动流程,需要立即在此系统上找到实际安装的版本的bower包。
如何以编程方式(仅版本本身)找到它,理想情况下使用标准的Unix命令行工具/ bower命令?
bower info <thepackagename>
不显示此信息 - 它会显示有关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)。
答案 0 :(得分:26)
这是一个grep命令来做到这一点:
grep "version\"\:" bower_components/thepackagename/.bower.json
此外,还有一个命令可以查看项目所有bower组件的版本 - 此列表可以是一个方便的CI artefact:
grep "version\"\:" bower_components/*/.bower.json
答案 1 :(得分:7)
你有没有试过&#34; bower list --json = 0 --offline&#34;。
它将列出所有凉亭包信息。
答案 2 :(得分:6)
我现在发现的最佳方法,似乎适用于我目前遇到的每个软件包,是:
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
似乎需要互联网连接来检查注册表,否则会失败。
有兴趣看看是否可以改进,尤其是最后一点。
击>