You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用npm view按日期时间排序npm包的版本号

npm view返回版本按发布时间排序方案
  • jq是处理该场景的最优选择之一:它是原生为命令行JSON流处理设计的工具,无需编写额外脚本、依赖少执行快,和npm命令通过管道拼接的适配性极好。
  • 你之前的命令存在三个问题:一是直接用.[]遍历对象时丢失了版本号(键)和时间(值)的对应关系,二是没有过滤返回结果里created、modified两个非版本的元数据字段,三是没有实现排序逻辑。

具体操作命令

npm返回的时间是标准ISO 8601格式的UTC字符串,字典序和时间先后顺序完全一致,不需要额外转时间戳即可直接排序。

  1. 按发布时间从早到晚(升序)输出版本+对应时间:
npm view @act/act-qa-task-thycotic time --json | jq 'to_entries | map(select(.key != "created" and .key != "modified")) | sort_by(.value)'
  1. 按发布时间从新到旧(倒序,最新版本在前)输出版本+对应时间,在排序后加reverse即可:
npm view @act/act-qa-task-thycotic time --json | jq 'to_entries | map(select(.key != "created" and .key != "modified")) | sort_by(.value) | reverse'
  1. 如果只需要排序后的纯版本号列表(不带引号、不带时间,方便脚本调用),加-r参数输出原始字符串,最后提取key字段即可:
# 从旧到新输出纯版本号
npm view @act/act-qa-task-thycotic time --json | jq -r 'to_entries | map(select(.key != "created" and .key != "modified")) | sort_by(.value) | map(.key)[]'

jq逻辑说明

  • to_entries:将原始的{版本号: 发布时间}对象,转换为[{"key":"版本号","value":"发布时间"}]结构的数组,保留键值对应关系以支持排序
  • map(select(...)):过滤掉非版本的元数据字段
  • sort_by(.value):按发布时间字段做升序排序
  • reverse:将排序后的数组反转,实现最新版本在前的效果

内容的提问来源于stack exchange,提问作者Jeff

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 01:36:19