npm-update(1) -- 包更新
基于 npm-update(1) 官方文档翻译版本
SYNOPSIS 概要
npm update [-g] [<pkg>...]
aliases: up, upgrade
DESCRIPTION 描述
此命令将更新所有列出的包到最新版本(由 tag
配置指定),遵循语义化版本。
它还将安装缺少的包。与其他安装包的命令一样,--dev
标志也会导致 devDependencies
被处理。
如果指定 -g
标志,则此命令将更新全局安装的包。
如果没有指定包名称,那么指定位置(全局或本地)中的所有包将被更新。
从 [email protected]
开始,npm update
只会检查顶层的包。以前的版本会递归检查所有的依赖项,要达到这种效果,请使用 npm --depth 9999 update
。
EXAMPLES 示例
重要版本提示:这些示例假定 [email protected]
或更高版本。对于旧版本的 npm
,必须指定 --depth 0
来达到下面描述的效果。
对于下面的示例,假设当前的包是 app
,它依赖 dep1
(dep2
,……等等)。 dep1
已发布的版本如下:
{
"dist-tags": { "latest": "1.2.2" },
"versions": [
"1.2.2",
"1.2.1",
"1.2.0",
"1.1.2",
"1.1.1",
"1.0.0",
"0.4.1",
"0.4.0",
"0.2.0"
]
}
插入符依赖
如果 app
的 package.json
包括:
"dependencies": {
"dep1": "^1.1.1"
}
那 npm update
会安装 [email protected]
,因为 1.2.2
是 latest
的,并且 1.2.2
满足 ^1.1.1
波浪号依赖
然而,如果 app
的 package.json
包括:
"dependencies": {
"dep1": "~1.1.1"
}
在这种情况下,运行 npm update
会安装 [email protected]
。即使 latest
标签指向了 1.2.2
,但该版本不满足 ~1.1.1
(>=1.1.1 <1.2.0
),所以使用了满足~1.1.1
的最高排序的 1.1.2
版本 。
低于 1.0.0 版本的插入符依赖
假设 app
有一个低于 1.0.0
版本的插入符依赖,例如:
"dependencies": {
"dep1": "^0.2.0"
}
npm update
会安装 [email protected]
,因为没有满足 ^0.2.0
的其他版本。
如果依赖的版本是 ^0.4.0
:
"dependencies": {
"dep1": "^0.4.0"
}
那 npm update
将会安装 [email protected]
,因为它是满足 ^0.4.0
(>= 0.4.0 <0.5.0
)的最高排序版本。
通过 --save
记录更新
当你需要更新包并且将新版本作为最低依赖保存在 package.json
中时,可以使用 npm update -S
或 npm update --save
。例如,如果 package.json
包括:
"dependencies": {
"dep1": "^1.1.1"
}
那 npm update --save
将会安装 [email protected]
(即 latest
),并且 package.json
会被修改成:
"dependencies": {
"dep1": "^1.2.2"
}
请注意,如果安装新包,npm
只会将更新了的版本写入 package.json
。
更新全局安装的包
npm update -g
会将 update
操作应用到已安装的每个 outdated
全局包,也就是说,与 latest
不同的版本。
注意:如果包升级到了比 latest
还新的包,那么它将被降级。