[TOC]
因为有时更新可能会破坏程序包所需的代码(称为依赖关系),所以在新版代码中传达更改的程度非常重要。语义版本控制(semver)是专为解决此问题而设计的标准。
## 发布者的语义版本控制
如果一个项目将与其他人共享,它应该从 1.0.0 开始(尽管npm上的一些项目不遵循这个规则)。
在此之后,更改应按如下方式处理:
![](https://docs.npmjs.com/images/semvertable.png =567x176)
## 消费者的语义版本控制
作为使用者,您可以指定您的应用程序可以在package.json文件中接受哪些类型的更新。
如果你是从包1.0.4开始的,这是你如何指定范围:
* Patch releases: :1.0 或 1.0.x 或 〜1.0.4
* Minor releases:1 或 1.x 或 ^ 1.0.4
* Major releases:* 或 x
更多
* 要获得一个很好的工具,您可以使用它来了解 semver 如何处理您最喜欢的软件包,请参阅 [npm semver calculator](https://semver.npmjs.com/) 。
* 有关在 package.json 文件中使用语义版本的更多信息,请[参阅第5章](https://docs.npmjs.com/getting-started/using-a-package.json#specifying-packages)。
* 另一种标签发布的方式,了解 [npm dist tags](https://docs.npmjs.com/cli/dist-tag) ,以及[它们与语义版本的关系](https://docs.npmjs.com/getting-started/using-tags)。
> [原文链接](https://docs.npmjs.com/getting-started/semantic-versioning)
- 第一章 入门
- 01 - 什么是npm?
- 02 - 如何找到和选择软件包
- 03 - 如何设置新的npm账户并安装npm
- 04 - 如何安装本地软件包
- 05 - 使用package.json
- 06 - 如何更新本地软件包
- 07 - 如何卸载本地软件包
- 08 - 如何安装全局包
- 09 - 如何更新全局包
- 10 - 如何卸载全局软件包
- 11 - 如何创建Node.js模块
- 12 - 如何发布和更新软件包
- 13 - 如何使用语义版本控制
- 14 - 如何使用作用域包
- 15 - 如何用dist-tags标签包
- 16 - 如何使用双因素认证
- 17 - 如何使用安全令牌
- 18 - 如何更改配置文件设置
- 19 - 了解包和模块
- 20 - 如何防止权限错误
- 第二章 私人包裹
- 第三章 故障排除
- 第四章 使用npm
- 第五章 CLI命令
- 第七章 配置npm
- 第八章 npm,Inc.