npm-outdated

检查过时的包

选择 CLI 版本

概述

npm outdated [<package-spec> ...]

描述

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

默认情况下,仅显示根项目的直接依赖项和您配置的工作区的直接依赖项。使用--all 查找所有过时的元依赖项。

在输出中

  • wanted 是满足 package.json 中指定的语义版本范围的包的最大版本。如果没有可用的语义版本范围(即您正在运行 npm outdated --global,或者包未包含在 package.json 中),则 wanted 将显示当前安装的版本。
  • latest 是注册表中标记为最新的包的版本。在没有特殊配置的情况下运行 npm publish 将使用 latest 的 dist 标签发布包。这可能是也可能不是包的最大版本,也不是包的最新发布版本,具体取决于包开发者如何管理最新的 dist 标签
  • location 是包在物理树中的位置。
  • depended by 显示哪个包依赖于显示的依赖项
  • package type(使用 --long / -l 时)会告诉您此包是 dependency 还是 dev/peer/optional 依赖项。package.json 中未包含的包始终标记为 dependencies
  • homepage(使用 --long / -l 时)是包的 packument 中包含的 homepage
  • 红色表示存在满足您的语义版本要求的较新版本,因此您现在应该更新。
  • 黄色表示存在高于您的语义版本要求的较新版本(通常是新的主要版本或新的 0.x 次要版本),因此请谨慎操作。

一个例子

$ npm outdated
Package Current Wanted Latest Location Depended by
glob 5.0.15 5.0.15 6.0.1 node_modules/glob dependent-package-name
nothingness 0.0.3 git git node_modules/nothingness dependent-package-name
npm 3.5.1 3.5.2 3.5.1 node_modules/npm dependent-package-name
local-dev 0.0.3 linked linked local-dev dependent-package-name
once 1.3.2 1.3.3 1.3.3 node_modules/once dependent-package-name

使用这些 dependencies

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

需要注意一些事项

  • glob 需要 ^5,这将阻止 npm 安装 glob@6,因为 glob@6 超出了语义版本范围。
  • Git 依赖项将始终被重新安装,因为它们是指定的方式。已安装的提交哈希可能满足依赖项说明符(如果是不可变的内容,如提交 SHA),也可能不满足,因此 npm outdatednpm update 必须获取 Git 仓库进行检查。这就是为什么当前重新安装 Git 依赖项始终强制执行新的克隆和安装。
  • [email protected] 被标记为“wanted”,但“latest”是 [email protected],因为 npm 使用 dist 标签来管理其 latestnext 发布通道。 npm update 将安装最新版本,但 npm install npm(没有语义版本范围)将安装标记为 latest 的任何内容。
  • once 已经过时了。从头开始重新安装 node_modules 或运行 npm update 将使其符合规范。

配置

全部

  • 默认值:false
  • 类型:布尔值

运行 npm outdatednpm ls 时,设置 --all 将显示所有过时的或已安装的包,而不是仅显示当前项目直接依赖的包。

json

  • 默认值:false
  • 类型:布尔值

是否输出 JSON 数据,而不是正常输出。

  • npm pkg set 中,它允许在将设置值保存到您的 package.json 之前使用 JSON.parse() 解析设置值。

并非所有 npm 命令都支持。

  • 默认值:false
  • 类型:布尔值

lssearchhelp-search 中显示扩展信息。

可解析

  • 默认值:false
  • 类型:布尔值

从写入标准输出的命令输出可解析的结果。对于 npm search,这将是制表符分隔的表格格式。

全局

  • 默认值:false
  • 类型:布尔值

在“全局”模式下运行,以便将包安装到 prefix 文件夹中,而不是当前工作目录。有关行为差异的更多信息,请参阅 文件夹

  • 包安装到 {prefix}/lib/node_modules 文件夹中,而不是当前工作目录。
  • bin 文件链接到 {prefix}/bin
  • 手册页链接到 {prefix}/share/man

工作区

  • 默认值
  • 类型:字符串(可以设置多次)

启用在当前项目的配置工作区上下文中运行命令,同时通过仅运行此配置选项定义的工作区进行过滤。

对于 workspace 配置的有效值是

  • 工作区名称
  • 工作区目录的路径
  • 父工作区目录的路径(将导致选择该文件夹中的所有工作区)

当为 npm init 命令设置时,这可以设置为尚未存在的工作区文件夹,以创建文件夹并将其设置为项目中的全新工作区。

此值不会导出到子进程的环境中。

另请参见