package.json
版本号
版本号由三部分组成:major.minor.patch(主版本号.次版本号.修补版本号)
json
{
"devDependencies": {
"vitepress": "^1.6.3" // 版本号
},
"scripts": {
"docs:dev": "vitepress dev",
"docs:build": "vitepress build",
"docs:preview": "vitepress preview"
}
}
~
会匹配最新的小版本依赖包,比如 ~1.2.3
会匹配所有 1.2.x 版本,但是不包括 1.3.0 ^
会匹配最新的大版本依赖包,比如 ^1.2.3
会匹配所有 1.x.x 的包,包括 1.3.0,但是不包括 2.0.0 *
会匹配最新版本的依赖包,比如 *1.2.3
会匹配 x.x.x
使用
- 直接指定版本号
eg:1.2.3 这样写没什么问题,但是如果依赖包发布了补丁版本,如现在依赖包有一个 bug,在 1.2.4 版本修复了,此时我们需要升级,需要手动修改 package.json 中的版本号,很麻烦
- 使用
~
,^
,*
可解决手动修改 package.json 版本号的问题
但是这里需要注意:一般推荐使用
~
来指定版本,因为~
一般是针对小的 bug 提交的版本,对我们的使用没有影响;如果是使用^
或者*
,这两种都是大版本的迭代,可以是依赖包的功能修改,这时候我们还是按照之前的用法使用,我们的项目可能会出现错误
问题
当多人开发时,不管用
~
/^
/*
,每个人安装的依赖包可能都会有差异,一旦有差异就会出现项目运行结果不一致
此时 package-lock.json 应运而生