And*_*ier 28 versioning json semantic-versioning bower
通常,bower.json文件指定一些依赖关系,但通常表达这些依赖关系,以便它们允许使用一系列版本的bower包(例如>=1.0,这意味着任何高于1.0的版本).
我有一个自动化流程,需要立即找到该系统上实际安装的bower包的版本.
如何以编程方式(仅版本本身)找到它,理想情况下使用标准的Unix命令行工具/ bower命令?
bower info <thepackagename>并没有表明这一点-它显示了什么是当前可从凉亭库信息(例如,即使我做bower info apackageIdonthaveinstalled它仍然会显示一个包含版本号的有效的JSON结构).
cat bower_components/thepackagename/bower.json | node_modules/json/lib/json.js version适用于某些软件包(假设json安装了npm软件包),但并非全部(例如jquery 2.2.0的bower软件包不包含bower.json).
Art*_*iev 26
这是一个grep命令来做到这一点:
grep "version\"\:" bower_components/thepackagename/.bower.json
此外,还有一个命令可以查看项目所有bower组件的版本 - 这个列表可以是一个方便的CI artefact:
grep "version\"\:" bower_components/*/.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/'
Run Code Online (Sandbox Code Playgroud)
(例如,如果我感兴趣的包是jquery).
由于各种原因,这很丑陋:
我必须重复包名称(虽然这可能会通过更好的Perl脚本来改进,它也会过滤行,我只是在懒惰).
bower list 获取有关所有已安装软件包的信息,而不仅仅是我感兴趣的软件包 - 其余信息将被丢弃.
bower list 似乎需要互联网连接来检查注册表,否则它会失败.
有兴趣看看是否可以改进,尤其是最后一点.
| 归档时间: |
|
| 查看次数: |
21083 次 |
| 最近记录: |