NPM的包版本管理
一、版本号的结构
NPM遵循SemVer的规范,格式为"^1.6.9",(主版本号、次版本号、修订号);
- 主版本号:很大的修改,这个版本号变动可能意味着你旧的代码无法正常运行;
- 次版本号:增加了新功能,一般不影响现有运行,但是新功能仍然可用;
- 修订号:修复了某些BUG;
- 其他版本:有些还有例如-alpha内部测试版本,不稳定;-beta公测版,功能没问题,但是可能有BUG;-rc候选正式版,如果没问题就转正;NPM中预发布版本低于正式版本;
二、在package.json中指定版本范围
js
"slugify": "^1.6.9",
我们发现这个版本号有个^符号,这个代表兼容主版本,如果有更新,可以直接更新,但是不会更新主版本,例如有1.8.0版本,会直接更新,但是不会更新2.0.0;以这个举例,我们一起看看其他的:
| 写法 | 含义 | 解释 |
|---|---|---|
| 1.6.9 | 精确版本 | 只安装1.6.9的这个版本 |
| ^1.6.9 | 兼容主版本 | 任何1.x.x都会被更新,但是不会更新到2.x.x |
| ~1.6.9 | 兼容次版本 | 任何1.6.X都会被更新,但是不会更新到1.7.X |
| >=1.6.9 | 大于等于 | 更新1.6.9及以上的任意版本 |
| >1.6.9 | 大于 | 同理 |
| <1.6.9 | 小于 | 同理 |
三、示例
- 例如我们现在安装slugify1.0.0
js
npm install slugify@1.0.0

- 可以通过命令检查哪些包可以更新
js
npm outdated

- 更新兼容次版本号
js
"slugify": "~1.0.0",

现在更新只会更新到1.0.2

-
如果修改为^1.0.0,会兼容主版本
-
使用npm uninstall slugify会卸载
