使用npm,当我使用npm view [package]命令时,我可以看到相对于今天的发布日期,例如:
npm view [package]
$ npm view lodash lodash@4.17.21 | MIT | deps: none | versions: 114 [...] published over a year ago by bnjmnt4n <benjamin@dev.ofcr.se>
如何以YYYY-MM-DD HH:mm:ss等格式获取准确的发布日期-时间?
YYYY-MM-DD HH:mm:ss
dgenwo3n1#
使用npm view可以运行以下命令:
npm view
$ npm view express time --json
这会在控制台中记录如下内容:
{ "modified": "2018-10-31T23:01:06.660Z", "created": "2010-12-29T19:38:25.450Z", "0.14.0": "2010-12-29T19:38:25.450Z", "0.14.1": "2010-12-29T19:38:25.450Z", ... "4.16.3": "2018-03-12T17:50:14.119Z", "4.16.4": "2018-10-11T03:59:14.308Z", "5.0.0-alpha.7": "2018-10-27T03:12:11.060Z" }
如您所见,命令 (上面) 返回一个包含属性的JSON对象; modified、created,并且还具有每个版本的属性(例如,"0.14.0"、"0.14.1"等…)。每个属性的关联值是日期。
modified
created
"0.14.0"
"0.14.1"
npm-view的文档说明如下:您可以通过使用句点分隔子字段来查看子字段。因此,获得值(即,dates)对于modified和created,您可以分别运行以下命令之一:
npm-view
$ npm view express time.modified # prints --> `2018-10-31T23:01:06.660Z`
和/或
$ npm view express time.created # prints --> `2010-12-29T19:38:25.450Z`
但是,当获取特定版本属性/键(如4.16.4)的值/日期时,您需要使用不同的方法,因为以下命令 * 不起作用 *:
4.16.4
# This does not work... $ npm view express time.4.16.4
# This also does not work... $ npm view express time.'4.16.4'
# This does not work either... $ npm view express time["4.16.4"]
以下命令演示如何成功获取express软件包的4.16.4版本的发布日期:
express
$ npm view express time --json | node -e "process.stdin.on('data', function(data) {console.log(JSON.parse(data)['4.16.4'])});" # prints: --> 2018-10-11T03:59:14.308Z
'4.16.4'
该解决方案:1.运行npm view express time --json命令并将JSON通过管道传输到nodejs脚本。
npm view express time --json
process.stdin
stdin
JSON.parse
如果你想要最新版本的发布日期,你可以运行下面两个bash命令:
$ version=$(npm view express version) $ npm view express time --json | node -e "process.stdin.on('data', function(data) {console.log(JSON.parse(data)['"$version"'])});" # prints: --> 2018-10-11T03:59:14.308Z
在这里,我们首先运行npm view express version(以获取最新版本号),并将返回的值赋给名为version的变量(即我们利用Command Substitution)。然后我们在节点脚本中引用version值。您也可以使用&&运算符将这两个命令链接起来,形成一个单行命令,如下所示:
npm view express version
version
&&
$ version=$(npm view express version) && npm view express time --json | node -e "process.stdin.on('data', function(data) {console.log(JSON.parse(data)['"$version"'])});" # prints: --> 2018-10-11T03:59:14.308Z
p4rjhz4m2#
在npm8+(节点16)上,执行以下操作:
npm view lodash time[4.17.21]
对于最新版本:
npm view lodash time[$(npm view lodash version)]
2条答案
按热度按时间dgenwo3n1#
使用
npm view
可以运行以下命令:这会在控制台中记录如下内容:
如您所见,命令 (上面) 返回一个包含属性的JSON对象;
modified
、created
,并且还具有每个版本的属性(例如,"0.14.0"
、"0.14.1"
等…)。每个属性的关联值是日期。如何获取特定版本的发布日期?
npm-view
的文档说明如下:您可以通过使用句点分隔子字段来查看子字段。
因此,获得值(即,dates)对于
modified
和created
,您可以分别运行以下命令之一:和/或
但是,当获取特定版本属性/键(如
4.16.4
)的值/日期时,您需要使用不同的方法,因为以下命令 * 不起作用 *:以下命令演示如何成功获取
express
软件包的4.16.4
版本的发布日期:'4.16.4'
部件替换为适当的版本 *。该解决方案:
1.运行
npm view express time --json
命令并将JSON通过管道传输到nodejs脚本。process.stdin
从stdin
(fd 0) 读取管道JSON。1.然后,我们使用
JSON.parse
解析JSON字符串,并获得名为4.16.4
的属性/键的值如果你想要最新版本的发布日期,你可以运行下面两个bash命令:
在这里,我们首先运行
npm view express version
(以获取最新版本号),并将返回的值赋给名为version
的变量(即我们利用Command Substitution)。然后我们在节点脚本中引用version
值。您也可以使用
&&
运算符将这两个命令链接起来,形成一个单行命令,如下所示:p4rjhz4m2#
在npm8+(节点16)上,执行以下操作:
对于最新版本: