11

如何快速检查 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

谢谢。

4

5 回答 5

20

是的,有一个选项:

npm outdated

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

根据文档,语法是

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

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

$ npm outdated mongoose

笔记

要正确使用它,您必须使用 rangegreater than或. 添加目标模块的版本号greater than or equal。您可以检查node-semver,它集成到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
$
于 2013-05-07T16:07:57.717 回答
3

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

https://gemnasium.com

于 2013-05-07T16:19:00.163 回答
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 获得,则有一些可能性。然后,您可以“观看”该存储库并获取通知更新!

于 2013-05-07T15:23:40.367 回答
2

您可能需要查看https://david-dm.org/,因为它是进行检查的免费服务。这更适合在您的 README 中添加构建徽章,但它在页面上提供的详细信息非常有帮助。

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

于 2013-05-26T03:52:55.627 回答
0

我发现最好的方法是使用:npm-check install with npm / yarn,然后以交互方式更新过时的包:npm -check -u

于 2018-03-17T18:28:52.147 回答