阅读(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)告诉你这个包是 a
dependency还是
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"
}
需要注意的几点:
glob
requires^5
,这会阻止 npm 安装glob@6
semver 范围之外的 。- Git 依赖项总是会被重新安装,因为它们是如何指定的。安装的committish可能满足的依赖符(如果它的东西不可变的,就像一个犯SHA),也可能没有,所以
npm outdated
并npm update
有获取的Git回购检查。这就是为什么当前重新安装 Git 依赖项总是强制进行新的克隆和安装。 npm@3.5.2
被标记为“通缉”,但“最新”是npm@3.5.1
因为 npm 使用 dist-tags 来管理其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
在global
模式下运行,以便将包安装到prefix
文件夹而不是当前工作目录中。有关行为差异的更多信息,请参阅 NPM 文件夹。
- 软件包安装到
{prefix}/lib/node_modules
文件夹中,而不是当前工作目录中。 - bin 文件链接到
{prefix}/bin
- 手册页链接到
{prefix}/share/man
workspace 工作区
- 默认:
- 类型:
String
(可多次设置)
允许在当前项目的已配置工作区的上下文中运行命令,同时通过仅运行此配置选项定义的工作区进行过滤。
workspace
配置的有效值为:
- 工作区名称
- 工作区目录的路径
- 父工作区目录的路径(将导致选择所有嵌套工作区)
为该npm init
命令设置时,可以将其设置为尚不存在的工作区的文件夹,以创建该文件夹并将其设置为项目中的全新工作区。
此值不会导出到子进程的环境中。