一、前言
如果使用npm来管理依赖包的同学可能会经常遇见package和package-json这两个文件,但是可能并不是每个人都知道这两个文件的含义,今天我们来简单介绍一下这两个文件。首先我们先来介绍一下语义化版本控制
二、语义化版本
什么是语义化版本?我们使用npm引入的包版本都是0.1.93或者0.1.97,这就是语义化版本,这几个数字可不是随随便便写的,那么他们到底都是什么意思呢?其实这三个数字分别依照以下规则:
版本格式:主版本号.次版本号.修订号,版本号递增规则如下:
- 主版本号:当你做了不兼容的 API 修改
- 次版本号:当你做了向下兼容的功能性新增
- 修订号:当你做了向下兼容的问题修正
那么使用这种规则有什么意义呢?想象一下,如果你的项目依赖了很多的包,这些包不可能是完美无缺的,他的维护者肯对会对其进行更新。那么,你怎么知道你使用的是包的哪个版本?你怎么知道你在升级包的版本之后原有代码还能运行?这就需要使用版本控制。如果我们依赖了一个2.0.0版本的包,在包更新时,只要是2.x.x的包我们都应该可以直接升级,因为他的更新是向下兼容的。同时,如果我们想更新一个大版本,那势必就要对程序进行修改。就好比reac15升react16,势必要对原代码进行一些修改。更多的细节可以点击我查看。下面我们开始介绍package和package-lock。