本文参考了NPM中文文档写作而成的
npm outdated 功能
检查过时的软件包
npm outdated 使用
npm outdated [[<@scope>/]<pkg> ...]
如果没有老版本的,就没有任何输出,参见下面
如果有新版本的,会提示你需要更新到的版本,如下图;
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中文文档
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。