注:hash方式打包是V3.6版本的新特性,因此本文只适合V3.6+版本,低版本用户,请升级至V3.6。

在V3.6版本中,App资源更新新增Hash模式,除实现APP资源增量、快速更新外,部署时文件路径不会每次动态生成了,也就解决了页面分享及微信端运行更新版本后要修改绑定地址的问题

概述

hash打包方式,采用了MD5算法。将打包的文件,采用MD5算法编译成一个数串,在更新资源时,根据第一次编译的数串,进行比较,计算出增量文件,以达到增量更新的目的。

打包流程

一、使用hash方式打包,与资源路径打包方式基本相同,只是在配置更新信息时,选择 以Hash方式打包,如图:图1-1

hash
图1-1

二、在打包到本地资源信息中,可以看到资源更新的方式,是以hash方式打包。如果资源为第一次打包,没有增量文件时,会给出提示:客户端将全量更新,如图:图1-2,图 1-3,这里弹出提示框,直接点击确定即可。当第二次有增量文件时,就不会弹出提示框了。

hash2
图1-2
hash3
图1-3

然后按规则,生成对应的安装包。部署到服务器中

三、在生成安装包文件之后,打开WWW资源目录,与普通版本号生成的安装包相比,会多出两个文件,compileInfo.json(JSON文件)和www_update.zip(增量压缩包)。如图:图1-4

hash4
图1-4

更新

在部署之后,做了文件更新之后,需要再次发布,更新资源时,程序会从服务端下载md5.json文件,(MD5文件就是将程序中的文件,通过MD5算法,编译成数串)在程序的根目录下,程序会根据compileInfo.json文件,去和服务器下载下来的md5.json文件,进行比较,找到增量文件,保存到compileInfo.json文件中,这个compileInfo.json文件就是差异文件。如图

hash5
图1-5

最终的资源目录生成在程序文件的build/hash目录下,如图,资源的增量文件,JSON文件就已经都保存到工程下了。如图:

hash6

部署

使用hash方式打包。在更新资源APP,需要重新部署时,只要将www文件下的资源目录,部署到服务器,替换掉之前的文件夹,就完成更新了,此时APP就会根据差异文件,只去更新增量文件了。

注:hash方式打包目前支持window7s及windows7以上版本、mac版本。windows XP以下的windows版本,目前还不可使用Hash方式打包。