npm依赖包版本号~和^的区别

栏目: NodeJs 发布时间:2024-12-05

在 npm package.json 文件中,常见版本号有三种:

1、固定版本号

即使用固定的版本号,不会发生变化

{
  "dependencies": {
    "node": "16.13.0"
  }
}

2、使用 ~ 锁定版本号前 2 位,允许更新最后 1 位

{
  "dependencies": {
    "node": "~16.13.0"
  }
}

~16.13.0 匹配 16.13.x,可以是 16.13.1、16.13.9 等等,但必须小于 16.14.0

3、使用 ^ 锁定版本号第 1 位,允许更新后 2 位

{
  "dependencies": {
    "node": "^16.13.0"
  }
}

^16.13.0 匹配 16.x.x,可以是 16.13.1、16.14.0 等等,但必须小于 17.0.0

小结

1.0.0 匹配固定版本"1.0.0",最稳定,所有升级都要在 package.json 修改版本号

~1.0.0 匹配 1.0.x 可以自动升级依赖包的 bugfix 版本

^1.0.0 匹配 1.x.x 较危险,依赖包可能会有破坏性的升级

综上,推荐使用 ~1.0.0 的写法,既可以升级 bugfix 版本,又可以降低引入破坏性的版本升级的风险。

本文地址:https://www.tides.cn/p_node-npm-package-version