看solidity时,有个指定版本号的语法,一直不太明白,后来发现其于npm的版本管理是一致的,所以记录如下:
pragma solidity ^4.2.3
npm的依赖版本管理采用了语义化版本规范。该规范约定一个包的版本号是包含了三个数字,版本格式为:
主版本号.次版本号.修订号
MAJOR.MINOR.PATCH
版本号增加规则:
1. 主版本号(MAJOR):对应大版本迭代,做了不兼容旧版本的修改
2. 次版本号(MINOR):对应小版本迭代,做了可以向下兼容的功能性新增
3. 修订号(PATCH):对应修正版本迭代,做了向下兼容的问题修复
具体有以下几种格式:
1. ^2.2.1 指定的主版本号下,所有更新的版本,匹配 2.2.3, 2.3.0;不匹配1.0.3, 3.0.1
2. ~2.2.1 知道的主版本号.次版本号下,所有更新的版本,匹配 2.2.3,2.2.9;不匹配2.3.0,2.4.5
3. >=2.1 版本号大于或等于2.1.0,匹配2.1.2,3.1;不匹配 2.0,1.0
4. <=2.3 版本号小于等于2.2.0,匹配1.0.0,2.1.2;不匹配 2.3,2.4.1
5. 1.0.0 - 2.0.0 版本号在1.0.0(含)到2.0.0(含)之间,匹配1.0.0,1.9.9;不匹配2.1.1
6. * 或者 x 匹配所有主版本
7. 1 或 1.x 匹配主版本号为1的所有版本
8. 1.2 或 1.2.x 匹配主版本号为1次版本号为2的所有版本