首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取最近更新的软件包

获取最近更新的软件包
EN

Stack Overflow用户
提问于 2015-02-26 00:57:55
回答 3查看 168关注 0票数 2

用例:

假设有下面的package.json

代码语言:javascript
复制
{
  "version": "0.0.1",
  "private": true,
  "name": "my-app",
  "devDependencies": {
    "connect-modrewrite": "*",
    "csslint": "~0.10.0",
    "eslint": "*",
    ...
}

eslint维护人员发布了一个新的包更新,我的日常构建任务已经通过npm install和其他包安装了它。突然,构建任务失败了。

现在,在研究构建失败的原因时,我想知道是否有依赖程序包更新可能是日常构建失败的罪魁祸首。

期望的结果/输出:

代码语言:javascript
复制
eslint             0.15.0 02/15/2015
connect-modrewrite 0.2.0  01/15/2015
...

基本上,我需要一个带有版本日期的项目依赖项列表。是否可以使用npm或第三方工具(如npm-check )获取此类元信息?

这里有一个最近更新的软件包页面,这正是我所要寻找的,但是在我的package.json依赖项列表的上下文中。

我知道“避免意外”的最佳实践,它建议列出每个依赖项的确切版本号,并谨慎地按需升级包。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-03-18 21:25:28

您可以使用npm命令查询npm注册表中有关包的信息。您甚至可以传递您感兴趣的json字段(看起来time.modified在您的情况下会有所帮助)。

结合一些shell管道和实用程序(如jq ),您将得到所需的东西。

代码语言:javascript
复制
$ npm view --json eslint | jq ".name, .version, .time.modified" | paste -s
"eslint"    "0.17.1"    "2015-03-18T00:31:26.357Z"

像这样的东西会给出每个依赖项的结果(正如您可能猜到的那样,我不太擅长bash):

代码语言:javascript
复制
#!/bin/bash

function trimQuotes {
  echo $@ | cut -c 2- | rev | cut -c 2- | rev
}

function deps {
  trimQuotes `cat package.json | jq '.dependencies | keys | join(" ")'`
}

function info {
  npm view --json $1 | jq '.name, .version, .time.modified' | paste -s
}

function printInfo {
  for word in $@; do
    echo -en "$(trimQuotes $word)\t"
  done;

  echo
}

function main {
  for pkg in $(deps); do
    echo "$(info $pkg)" | while read line; do
      printInfo $line
    done;
  done;
}

main
票数 2
EN

Stack Overflow用户

发布于 2015-02-26 14:24:28

npm中目前不存在此特性。您可以在npm问题跟踪器( https://github.com/npm/npm/issues )上提出特性请求。

一种近似的方法是在每次成功的每日构建之后执行一个npm ls,并将其签入源代码管理中。然后,在失败的日常构建中,您可以报告当前的npm ls和最近为人所知的优秀产品之间的差异。

票数 1
EN

Stack Overflow用户

发布于 2015-03-17 16:09:13

在您的日常更新中运行npm outdated CLI命令优先。这将保存在安装之前什么是过时的记录。

我将输出传输到存储库中的一个文件中,并使用git diff。我提交了前更新文件,并再次将其运行到输出文件。任何好的源代码管理都会以同样的方式工作。

这还有助于跟踪更新后提交的包的版本。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28732670

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档