如何快速检查package.json文件是否包含可以更新到更新版本的模块?

时间:2013-05-07 15:17:50

标签: node.js npm

如何快速检查package.json文件是否包含可以更新到较新版本的模块?

例如,快速检查express或nodemailer是否有可用的更新?

{
    "name": "some_module_name"
  , "description": ""
  , "version": "0.0.3"
  , "dependencies":  {
           "express": "3.1"
         , "nodemailer" : "0.4.0"
    }
}

我阅读了常见问题解答,但没有看到任何内容: https://npmjs.org/doc/faq.html

感谢。

5 个答案:

答案 0 :(得分:19)

是的,有一个选项:

npm outdated

这将列出具有可用更新的模块。它支持指定模块名称的语法。

根据Documentation,语法为

npm outdated [<name> [<name> ...]]

这使您可以指定要专门检查的模块名称,例如

$ npm outdated mongoose

注意

要正确使用此功能,您必须添加范围为greater thangreater than or equal的目标模块的版本号。您可以检查node-semver,{{3}}已集成到npm中以检查语法。

实施例

{
    "dependencies": {
        "express": "3.2.0",
        "mongoose": ">= 3.5.6",
    },
}

将给出以下结果(因为今天最新的猫鼬版本是3.6.9)

$ npm outdated
...
mongoose@3.6.9 node_modules/mongoose current=3.6.7
$

如果你放置

{
    "dependencies": {
        "express": ">= 3.2.0",
        "mongoose": ">= 3.5.6",
    },
}

结果将是:

$ npm outdated
...
mongoose@3.6.9 node_modules/mongoose current=3.6.7
express@3.2.3 node_modules/express current=3.2.0
$

答案 1 :(得分:3)

像travis这样的服务会自动检查它:

https://gemnasium.com

答案 2 :(得分:2)

您需要使用更新命令手动执行此操作:

$ npm update

您也可以更改版本:

"nodemailer": "*" // this would use the newest version

"nodemailer": ">=0.4.0" // this will install any version which is at least 0.4.0

依旧......

在此处详细了解:https://npmjs.org/doc/json.html#dependencies

编辑:如果模块可以通过github获得,则有可能。然后,您可以“观察”该回购,并获得通知更新!

答案 3 :(得分:2)

您可能需要查看https://david-dm.org/,因为它是执行检查的免费服务。这是为您的自述文件添加构建徽章的更多目标,但它在页面上提供的详细信息非常有用。

请参阅https://david-dm.org/jshint/jshint作为示例输出。

答案 4 :(得分:0)

我发现的最佳方法是使用:npm-check安装npm / yarn,然后以交互方式更新过时的软件包:npm -check -u