目前我们发现不少开发者不太了解小程序的基础库版本号规则,在这里介绍一下。
小程序基础库版本号使用 semver 规范,格式为 Major.Minor.Patch,Major、Minor、Patch 均为整数,1.9.901、2.44.322、10.32.44 都是符合 semver 风格的版本号。
通常我们月度发布版本会把 Minor 提升一位,例如从 1.9.x 升级到 1.10.x,如果是修正版本,会把 Patch 提升一位,例如 1.10.0 升级到 1.10.1。目前不少开发者使用了错误的版本号比较方法,例如直接用字符串比较,parseInt 比较等,往后当基础库版本号提升上去后,会引发一些逻辑错误。
在这里建议大家使用以下正确方法:
1. 登录 mp 后台(https://mp.weixin.qq.com),点击左侧导航菜单中的「设置」,设置基础库最低版本号,无需编写任何代码即可限制最低运行版本;
2. 使用以下推荐的代码进行判断:
function compareVersion(v1, v2) { v1 = v1.split( '.' ) v2 = v2.split( '.' ) var len = Math.max(v1.length, v2.length) while (v1.length < len) { v1.push( '0' ) } while (v2.length < len) { v2.push( '0' ) } for ( var i = 0; i < len; i++) { var num1 = parseInt(v1[i]) var num2 = parseInt(v2[i]) if (num1 > num2) { return 1 } else if (num1 < num2) { return -1 } } return 0 } compareVersion( '1.11.0' , '1.9.9' ) // => 1 // 1 表示 1.11.0 比 1.9.9 要新 compareVersion( '1.11.0' , '1.11.0' ) // => 0 // 0 表示 1.11.0 和 1.11.0 是同一个版本 compareVersion( '1.11.0' , '1.99.0' ) // => -1 // -1 表示 1.11.0 比 1.99.0 要老 |
后续版本我们会在基础库中增加版本比较方法,到时候建议大家直接使用该方法。
看了最新的基础库版本,1.9.9 接下来是 1.9.90 是什么鬼?不变成 1.9.10 是为了“照顾”直接比较字符串的吗(摊手
麻烦看一下这个问题
https://developers.weixin.qq.com/blogdetail?action=get_post_info&lang=zh_CN&token=1336278345&docid=00080cf57bc228d95846d294d5fc00