Node.js 的 Package,它的版本号是用三位数字表示的,比如项目依赖的这个 rxjs,当初把它添加到这个项目,作为这个项目依赖的时候,它的版本是 6.3.3。 第一位数字表示的是大版本,就是这个 6 ,第二位数字表示的是小版本,这里是 3,最后一位是补丁版本。
如果这个 Package 的功能有非常大的变化,一般会更新它的大版本号,如果 Package 只是添加了一些新的小功能,可以更新它的小版本号,修复了一些 Bug 以后,可以更新一下这个补丁版本。
把一个 Package 添加到项目的 dependencies 里面的时候,如果设置了一个具体的版本,在执行 npm install 的时候, npm 就会给我们下载安装这个具体版本的 Package 。
不过这里你会发现,很多依赖的包的版本号的前面,会带着一个向上的小箭头标记。它的意思是,在下载安装这个 Package 的时候,可以下载使用它的小版本的更新。
比如这个 rxjs,版本号是 6.3.3 ,但是在这个版本号的前面带着一个向上的小箭头标记,也就是在用 npm 安装项目依赖的时候,npm 如果发现 rxjs 这个包,有小版本的更新,就是去下载更新的 rxjs。比如 6.4 或者 6.5 ,6.5.1 ,6.5.2 等等。
但是如果这个 rxjs 有大版本的升级,比如版本 7 ,给我们这个项目安装依赖的时候,就不会安装这个 rxjs 的大版本的更新。因为这个版本号前面的向上小箭头,限制了,最多只能下载安装这个 Package 的小版本更新。
再打开项目里的这个 package-lock.json ,打开以后搜索一下 rxjs,这个文件里列出的就是实际安装的包。你会发现,在我的这个项目里面,安装的 rxjs 的版本是 6.4.0 。