本文参考了 NPM 中文文档写作而成的
npm update 功能
更新软件包
npm update 使用
npm update [-g] [<pkg>...]
aliases: up, upgrade
npm update 说明
该命令会将所有列出的软件包更新到最新版本(由 tagconfig 指定),同时注意使用 semver。
它还将安装缺少的软件包。与所有安装软件包的命令一样,该 –dev 标志也会引起 devDependencies 处理。
如果 -g 指定了该标志,则此命令将更新全局安装的软件包。
如果未指定软件包名称,则将更新指定位置(全局或本地)中的所有软件包。
从开始 npm@2.6.1,npm update 只会检查顶级软件包。的先前版本 npm 还会递归检查所有依赖项。要获取旧的行为,请使用 npm –depth 9999 update。
从开始 npm@5.0.0,npm update 将更 package.json 改为将新版本保存为所需的最低依赖关系。要获取旧的行为,请使用 npm update –no-save。
npm update 例子
重要版本注意:这些示例仅适用于 npm@2.6.1 以后的版本。对于的旧版本 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 将安装 dep1@1.2.2,因为 1.2.2 是 latest 和 1.2.2 满足 ^1.1.1。
波浪依赖
但是,如果 app 的 package.json 包含:
"dependencies": {"dep1": "~1.1.1"}
在这种情况下,运行 npm update 将安装 dep1@1.1.2。即使 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 将安装 dep1@0.2.0,因为没有其他满足要求的版本 ^0.2.0。
如果依赖于 ^0.4.0:
"dependencies": {"dep1": "^0.4.0"}
然后 npm update 安装 dep1@0.4.1,因为这是满足 ^0.4.0(>= 0.4.0 <0.5.0)的最高排序版本
更新全局安装的软件包
npm update -g 会将 update 操作应用于每个全局安装的软件包,即 outdated- 具有不同于的版本 latest。
注意:如果软件包已升级到比更高的版本 latest,它将被降级。
本文参考 NPM 中文文档