关于依赖的版本
我们可以先来了解依赖的版本
javascript
{
"dependencies": {
"@nestjs/common": "^10.0.0",
"@nestjs/core": "^10.0.0",
}
}
比如我们常见的依赖版本一般长这样,它一般由三部分组成:major.minor.patch
,依次为主版本号、次版本号、修补版本号。
主要版本
的更改代表了一个破坏兼容性的大变化。 如果用户不适应主要版本更改,则内容将无法正常工作。次要版本
的更改表示不会破坏任何内容的新功能。修补版本
的更改表示不会破坏任何内容的错误修复。
比如上面我们看到的^10.0.0
,主版本号为10、次版本号为0、修补版本号为0,那^
表示什么呢?
版本号指定标识符^~
*
这个符号其实是用来指定版本范围的,与之对应的有以下符号:
^
会匹配最新的大版本依赖包,比如^1.2.3
会匹配所有>=1.1.2 <2.0.0
的版本,包括1.3.0
,但是不包括2.0.0
~
会匹配最近的小版本依赖包,比如~1.2.3
会匹配所有>=1.1.2 <1.2.0
的版本,但是不包括1.3.0
*
安装最新版本的依赖包,比如*1.2.3
会匹配x.x.x
- 无符号时,比如
1.2.3
,那就是将要使用的确切版本,总是会下载这个版本的依赖包
也可以这么理解:
- 符号^:表示主版本固定的情况下,可更新最新版。例如:vuex: "^3.1.3",3.1.3及其以上的3.x.x都是满足的。
- 符号~:表示次版本固定的情况下,可更新最新版。如:vuex: "~3.1.3",3.1.3及其以上的3.1.x都是满足的。
*
安装最新版本的依赖包。- 无符号:无符号表示固定版本号,例如:vuex: "3.1.3",此时一定是安装3.1.3版本。