版本

package.json文件列出了程序自己的版本和它的依赖的版本。 版本是一种方式,用于处理包的单独演变。为使用某个时候的包而编写的代码,可能不能使用包的更高版本。

NPM 要求其包遵循名为语义版本控制(semantic versioning)的纲要,它编码了版本号中的哪些版本是兼容的(不破坏就接口)。 语义版本由三个数字组成,用点分隔,例如2.3.0。 每次添加新功能时,中间数字都必须递增。 每当破坏兼容性时,使用该包的现有代码可能不适用于新版本,因此必须增加第一个数字。

package.json中的依赖项版本号前面的脱字符(^),表示可以安装兼容给定编号的任何版本。 例如"^2.3.0"意味着任何大于等于2.3.0且小于3.0.0的版本都是允许的。

npm命令也用于发布新的包或包的新版本。 如果你在一个包含package.json文件的目录中执行npm publish,它将一个包发布到注册处,带有 JSON 文件中列出的名称和版本。 任何人都可以将包发布到 NPM - 但只能用新名称,因为任何人可以更新现有的包,会有点恐怖。

由于npm程序是与开放系统(包注册处)进行对话的软件,因此它没有什么独特之处。 另一个程序yarn,可以从 NPM 注册处中安装,使用一种不同的接口和安装策略,与npm具有相同的作用。

本书不会深入探讨 NPM 的使用细节。 请参阅npmjs.org来获取更多文档和搜索包的方法。