Node-modules版本管理相关
2019-06-25 本文已影响0人
醉饮满天星
Yarn
语义化版本
npm和yarn的包遵循语义化版本
:
版本号可以划分为 主版本号.次版本号.修订号(major.minor.patch),类似这些: 3.14.1、 0.42.0、 2.7.18。 不同的情况对应不同的版本号增长:
- 主版本号:新的版本不兼容老版本的 API
- 次版本号:新的版本新增了部分功能,并向下兼容
- 修订号:新的版本修复了部分bug,并向下兼容
注意: 有时语义版本也会包含一些“标签”或者“扩展”,用于标记预发布版本或者测试版本,比如 2.0.0-beta.3。
开发者所说的“兼容”通常表示新的版本“向下兼容”(次版本号和修订号)。
版本范围
{
"dependencies": {
"package-1": ">=2.0.0 <3.1.4",
"package-2": "^0.4.2",
"package-3": "~2.7.1"
}
}
- 2.0.0 - 3.1.4一个包含集合
- X,x,或者* 通配符 2.x >=2.0.0 <3.0.0(匹配主要版本)
- ~ 如果有次版本号,允许修订号,如果没有,允许次版本号~3.1.4: >=3.1.4 <3.2.0
- ^ 表明不会修改版本号中的第一个非零数字 ^3.1.4 >=3.1.4 <4.0.0
yarn add [package-name] 命令默认使用 ^ 范围。
使用yarn对以前的项目进行依赖包的升级
以前的项目框架依赖的node-modules版本太低,想要对其进行升级,使用现阶段新的版本。
yarn upgrade [package | package@tag | package@version | @scope/]... [--ignore-engines] [--pattern]
该命令会根据在 package.json 文件中所指定的版本范围将依赖更新到其最新版本。也会重新生成yarn.lock 文件。如果package.json没有指定范围的限制,那么会将该package升级至最新版本。
示例
yarn upgrade left-pad
yarn upgrade left-pad@^1.0.0
yarn upgrade [package]... --latest|-L [--caret | --tilde | --exact] [--pattern]
带有--latest标签会忽略版本指示范围
yarn upgrade --latest
yarn upgrade left-pad --latest
yarn upgrade left-pad grunt --latest --tilde
yarn upgrade-interactive [--latest]
upgrade-interactive 与 upgrade 命令采用相同的参数和功能。 在执行升级操作之前,此命令将显示已过期的包列表,并允许用户选择相应的想要升级的包。
--latest : 此标志告知 yarn 忽略 package.json 中指定的版本范围,改用资源库中标为 latest 的版本。