npm outdated 全方位解读

本文参考了NPM中文文档写作而成的

npm outdated 功能

检查过时的软件包

npm outdated 使用

npm outdated [[<@scope>/]<pkg> ...]

如果没有老版本的,就没有任何输出,参见下面

https://a.axihe.com/img/api-npm/mintty_uQWhGn4y9w.png

如果有新版本的,会提示你需要更新到的版本,如下图;

https://a.axihe.com/img/api-npm/mintty_K3s3VKrotQ.png

npm outdated 说明

此命令将检查注册表以查看当前是否已安装任何(或特定的)已安装软件包。

在输出中:

  • wanted 是满足中指定的 semver 范围的软件包的最高版本 package.json。如果没有可用的存储范围(即您正在运行 npm outdated --global,或者该软件包未包含在其中 package.json),则 wanted 显示当前安装的版本。
  • latest 是在注册表中标记为最新的软件包的版本。npm publish 在没有特殊配置的情况下运行将发布带有 dist-tag 的软件包 latest。这可能是软件包的最高版本,也可能不是软件包的最新版本,这取决于软件包的开发人员如何管理最新的 dist-tag。
  • location 是程序包在依赖关系树中的位置。请注意, npm outdated 默认深度为 0,因此,除非您覆盖该深度,否则始终将仅看到过时的顶级依赖项。
  • package type(使用 --long/ 时 -l)告诉您此软件包是 a dependency 还是 a devDependency。未包含的软件包 package.json 始终带有标记 dependencies。
  • homepage(当使用--long/ 时 -l)是 homepage 包中包含的值 package.json
  • 红色表示有一个新版本符合您的 semver 要求,因此您应该立即进行更新。
  • 黄色表示超出您的英语要求(通常是新的专业,或新的 0.x 次要),因此请谨慎行事。

一个例子

$ npm outdated
Package     Current     Wanted  Latest  Location
glob        5.0.15      5.0.15  6.0.1   test-outdated-output
nothingness 0.0.3       git     git     test-outdated-output
npm         3.5.1       3.5.2   3.5.1   test-outdated-output
local-dev   0.0.3       linked  linked  test-outdated-output
once        1.3.2       1.3.3   1.3.3   test-outdated-output

有了这些 dependencies:

{
    "glob": "^5.0.15",
    "nothingness": "github:othiym23/nothingness#master",
    "npm": "^3.5.1",
    "once": "^1.3.1"
}

注意事项:

  • glob 需要 ^5,这 NPM 防止安装 glob@6,这是 semver 范围之外。
  • Git 依赖项将始终被重新安装,因为它们是如何指定的。安装的 committish 可能满足的依赖符(如果它的东西不可变的,就像一个犯 SHA),也可能没有,所以 npm outdated 并 npm update 有获取的 Git 回购检查。这就是为什么当前重新安装 Git 依赖项总是强制执行新克隆并安装的原因。
  • npm@3.5.2 被标记为“通缉令”,但“最新”,是 npm@3.5.1 因为故宫使用的 dist- 标签来管理其 latest 和 next 释放的通道。npm update 将安装最新版本,但 npm install npm(没有 semver 范围)将安装标记为的任何内容 latest。
  • once 只是过时了。node_modules 从头开始安装或重新运行 npm update 将使其达到规格。

配置

json

  • 默认值:false
  • 类型 : Boolean

以 JSON 格式显示信息。

long

  • 默认值:false
  • 类型 : Boolean

显示扩展信息。

parseable

  • 默认值:false
  • 类型 : Boolean

显示可分析的输出而不是树视图。

global

  • 默认值:false
  • 类型 : Boolean

在全局安装前缀中而不是在当前项目中检查软件包。

depth

  • 默认值:0
  • 类型:整数

用于检查依赖关系树的最大深度。

本文参考NPM中文文档

阅读 1.2k

推荐阅读