一个示例

中英双语
$ 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 安装超出 semver 范围的 glob@6
  • Git 依赖项总是会被重新安装,因为它们是如何指定的。安装的 committish 可能满足依赖说明符(如果它是不可变的,例如提交 SHA),也可能不满足,因此 npm outdatednpm update 必须获取 Git 存储库进行检查。这就是为什么当前重新安装 Git 依赖项总是会强制进行新的克隆和安装。
  • npm@3.5.2 被标记为 "wanted",但是 "latest" 是 npm@3.5.1,因为 npm 使用 dist-tags 来管理它的 latestnext 发布通道。npm update 将安装最新版本,但 npm install npm(没有 semver 范围)将安装标记为 latest 的任何内容。
  • once 已经过时了。从头开始重新安装 node_modules 或运行 npm update 将使其符合规范。