node中package.json版本号^~说明

发表于:2019-04-29

当我们在安装某一个依赖包的时候会发现版本号前面带有 ^ 或者 ~ , 这些到底是什么意思呢?先看看下面的依赖包,举例说明:

{
  "dependencies": {
    "redux": "^4.0.1",
    "eslint-config-egg": "~6.0.0",
    "webpack": "4.28.3"
  }
}

其实我们安装的大部分依赖包前面都有 ^ 符号, ~ 符号就较少了。

下面详细的介绍这些区别

^ 插入符合

插入符号用得最多的,因为它非常的灵活,可以使依赖包向后兼容。

拿上面的依赖包举例说明, redux版本号为 4.0.1 , 当我们执行 npm install 它将会更新次版本号修订版本号

打个比如redux 4.x最新版本是 v4.7.3 而 5.x最新是 v5.1.0。 那么npm install 就会更新到v4.7.3而不会更新v5.1.0, 主版本号是不变的。

~ 波浪符合

这个符号用的最少的,因为在曾经依赖包默认是波浪符号的,现在已经变成了插入符号。

这个符号只会更新修订版本号,也就是第3位。

举个例子:"eslint-config-egg" 当我们安装这个依赖包时它会安装最新的 6.0.X , 只会更新第三位。

既没有 ^ 也没有 ~

这个最容易理解了,如果包的版本号是 4.28.3 那么安装的时候就是 4.28.3。

总结

当发布一个包时如果非常有把握向后兼容,那么完全可以用 ^ , 否则就像webpack这样子固定版本号比较稳妥。

之前写了一篇关于版本号说明可以了解下 你了解版本号吗?

Node.js
广告