npm 使用 语义化版本号(Semantic Versioning),格式为 major.minor.patch(主版本号.次版本号.修补版本号)。
| 规则 | 说明 | 示例 |
|---|
version | 精确匹配某个版本 | 1.1.2 只匹配 1.1.2 |
>version | 必须大于某个版本 | >1.1.2 匹配 1.1.3+ |
>=version | 大于或等于某个版本 | >=1.1.2 匹配 1.1.2+ |
<version | 必须小于某个版本 | <1.1.2 匹配 1.1.1 及以下 |
<=version | 小于或等于某个版本 | <=1.1.2 匹配 1.1.2 及以下 |
* | 任意版本 | 匹配 >=0.0.0 的所有版本 |
x | 通配符 | 1.2.x 匹配 1.2.0 ~ 1.2.n |
- 如果指定了 minor 版本号,minor 不变,patch 任意
- 如果未指定 minor,minor 和 patch 都任意
| 规则 | 匹配范围 |
|---|
~1.1.2 | >= 1.1.2 < 1.2.0 |
~1.1 | >= 1.1.0 < 1.2.0 |
~1 | >= 1.0.0 < 2.0.0 |
版本号中最左边的非 0 数字右侧可以任意:
| 规则 | 匹配范围 |
|---|
^1.1.2 | >= 1.1.2 < 2.0.0 |
^0.2.3 | >= 0.2.3 < 0.3.0 |
^0.0.3 | >= 0.0.3 < 0.0.4 |
| 语法 | 说明 |
|---|
1.1.2 - 1.3.1 | 包含 1.1.2 和 1.3.1 之间的所有版本 |
<1.0.0 || >=2.3.1 | 满足任一范围即可 |
| 操作 | 行为 |
|---|
npm install | 忽略模糊版本,安装 package.json 中指定的精确版本 |
npm update | 更新模糊版本至最新兼容版本 |
npm install 会安装 devDependencies(除非指定 --production)npm update 会忽略 devDependencies(除非指定 --dev)