Skip to content

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

使用

  1. 直接指定版本号

eg:1.2.3 这样写没什么问题,但是如果依赖包发布了补丁版本,如现在依赖包有一个 bug,在 1.2.4 版本修复了,此时我们需要升级,需要手动修改 package.json 中的版本号,很麻烦

  1. 使用~,^,*可解决手动修改 package.json 版本号的问题

但是这里需要注意:一般推荐使用~来指定版本,因为~一般是针对小的 bug 提交的版本,对我们的使用没有影响;如果是使用^或者*,这两种都是大版本的迭代,可以是依赖包的功能修改,这时候我们还是按照之前的用法使用,我们的项目可能会出现错误

问题

当多人开发时,不管用~/^/*,每个人安装的依赖包可能都会有差异,一旦有差异就会出现项目运行结果不一致

此时 package-lock.json 应运而生

package-lock.json