Dreamer Dreamer
首页
  • 分类
  • 标签
  • 归档
关于
GitHub (opens new window)

lycpan233

白日梦想家
首页
  • 分类
  • 标签
  • 归档
关于
GitHub (opens new window)
  • Mysql

  • Node

    • npm为什么父项目指定依赖版本后,可以影响到子项目的依赖
    • MacOS pnmp多个项目同个包,为什么没有共享存储空间?
    • pnpm 使用指南
    • pnpm 下载依赖更换源不生效
    • Commitizen + Commitlint + husky 实践
    • package.json 中波浪号~ 异或号^ 是什么意思?
  • Go

  • Docker

  • 后端
  • Node
lycpan233
2024-08-03

package.json 中波浪号~ 异或号^ 是什么意思?

# 版本号段落解读

版本格式:主版本号.次版本号.修订号,版本号递增规则如下:

主版本号(Major):当你做了不兼容的 API 修改,
次版本号(Minor):当你做了向下兼容的功能性新增,
修订号(Patch):当你做了向下兼容的问题修正。
先行版本号及版本编译信息可以加到“主版本号.次版本号.修订号”的后面,作为延伸。
1
2
3
4
5
6

我们常见的版本号,如 v1.2.3,其本身并不是语义化版本号,但是通过 'v' 前缀标识版本号是我们常用的方式。 1.2.3 才是严格意义上的语义化版本号。 其中 1 为主版本号(major),2 为次版本号(minor),3 为修订号(patch)。

# ~ 波浪号 的含义

指定了次要版本,则允许补丁版本变更,否则允许次要版本变更。

下面是给出的几个例子,方便大家理解:

  • ~1.2.3 := >=1.2.3 <1.3.0 (Same as 1.2.x)
  • ~1.2 := >=1.2.0 <1.3.0 (Same as 1.2.x)
  • ~1 := >=1.0.0 <2.0.0 (Same as 1.x.x)
  • ~0.2.3 := >=0.2.3 <0.3.0 (Same as 0.2.x)
  • ~0.2 := >=0.2.0 <0.3.0 (Same as 0.2.x)
  • ~0 := >=0.0.0 <1.0.0 (Same as 0.x.x)

# ^ 异或号 的含义

不允许破坏性变更,锁定从左起,第一位不为 0 的版本号

下面是给出的几个例子,方便大家理解:

  • ^1.2.3 := >=1.2.3 < 2.0.0
  • ^0.2.3 := >=0.2.3 < 0.3.0
  • ^0.0.3 := >=0.0.3 <0.0.4

这个定义可能有违大家的基础认识。比如我们都知道 ^1.2.3 允许下载 >= 1.2.3 < 1.3.0 的版本。但是对于 ^0.1.2 相信很多朋友会误以为其范围是 >= 0.1.2 < 1.0.0 实际上为 >= 0.1.2 < 0.2.0。

# 相关链接

semver 规则 (opens new window)

node-semve -- npm (opens new window)

编辑 (opens new window)
上次更新: 2025/04/15, 03:48:14
Commitizen + Commitlint + husky 实践
Wire 依赖注入

← Commitizen + Commitlint + husky 实践 Wire 依赖注入→

最近更新
01
docker基础概念
02-26
02
js 获取变量准确类型
02-19
03
Mysql SQL 优化思路
02-18
更多文章>
Theme by Vdoing | Copyright © 2023-2025 Dreamer | MIT License
粤ICP备2025379918号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式