版本号
版本控制常用分段
MAJOR(大版本):有与上个版本不兼容的更改,无法正常向向后兼容。
MINOR(主要版本):新增加功能,可正常向向后兼容。
PATCH(小版本):修复了某些bug,可以正常向后兼容。
指定某个特定版本的依赖
{
...
"dependencies":{
...
"vite": "3.0.4",
...
}
...
}
指定最新版本的依赖
所有版本最新
很少使用,新版本可能出现各种不稳定的情况
{
...
"dependencies":{
...
"vite": "latest",
...
}
...
}
大版本最新
指保持大版本维持在最新状态,如下所示,会让vite依赖保持在3.x.x的最新版本,假设vite最新版本为4.9.1,那仍然会自动匹配3.x.x的最新版本并使用,而不会更新到4.x.x版本
{
...
"dependencies":{
...
"vite": "^3.0.4",
...
}
...
}
主要版本最新
指主要版本保持最新版,如下所示,假设vite最新版本为3.9.1,那仍然会自动匹配3.0.x的最新版本并使用
注意,如果大版本号(MAJOR)为0,则与~
的行为保持一致,因为处于开发阶段,因此仅保持主要版本最新
{
...
"dependencies":{
...
"vite": "~3.0.4",
...
}
...
}
版本锁定
通过package-lock进行版本锁定
package-lock.json是用于控制项目版本的一种版本锁,对于package.json而言,它只记录主模块的依赖版本号,而对于依赖的依赖并不关心;而package-lock
会记录所有依赖的版本并锁定,之后再执行npm i
也不会更新依赖库的版本(因为很多项目都仅要求了最低版本,而不是最低版本到最高版本的区间)
每次执行npm i
后都会创建或更新package-lock.json
文件,如果出现依赖库版本冲突,可以根据package-lock
文件进行对比检查
参与讨论
(Participate in the discussion)
参与讨论