阅读(314) (9)

npm 过时 outdated

2021-09-06 15:27:15 更新

检查过时的包

概要

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

描述

此命令将检查注册表以查看当前是否有任何(或特定的)已安装软件包已过时。 在输出中:

  • wanted是满足 中指定的 semver 范围的包的最大版本package.json。如果没有可用的 semver 范围(即您正在运行npm outdated --global,或者软件包未包含在 中 package.json),则wanted显示当前安装的版本。
  • latest是在注册表中标记为最新的包版本。npm publish在没有特殊配置的情况下运行将发布带有 dist-tag 的包latest。这可能是也可能不是包的最大版本,或者包的最新发布版本,这取决于包的开发人员如何管理最新的dist-tag。
  • location是包在依赖树中的位置。请注意, npm outdated默认深度为 0,因此除非您覆盖它,否则您将始终只看到过时的顶级依赖项。`
  • package type(当使用--long/ 时-l)告诉你这个包是 adependency还是devDependency. 未包含在其中的软件包package.json 始终标记为dependencies`。
  • homepage(使用--long/ 时-l)是homepage包中包含的值package.json
  • 红色表示有符合您的 semver 要求的较新版本,因此您应该立即更新。
  • 黄色表示有一个高于您的 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"
}

需要注意的几点:

  • globrequires ^5,这会阻止 npm 安装glob@6semver 范围之外的 。
  • Git 依赖项总是会被重新安装,因为它们是如何指定的。安装的committish可能满足的依赖符(如果它的东西不可变的,就像一个犯SHA),也可能没有,所以npm outdated并 npm update有获取的Git回购检查。这就是为什么当前重新安装 Git 依赖项总是强制进行新的克隆和安装。
  • npm@3.5.2被标记为“通缉”,但“最新”是npm@3.5.1因为 npm 使用 dist-tags 来管理其latestnext发布渠道。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

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

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

workspace 工作区

  • 默认:
  • 类型:String(可多次设置)

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

workspace配置的有效值为:

  • 工作区名称
  • 工作区目录的路径
  • 父工作区目录的路径(将导致选择所有嵌套工作区)

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

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