离线包
申请流程
前端已有工程改造
- 离线包项目webpack加上打包离线包的的命令,使用webpack插件,在打包后的同级目录下生成相应的offline.zip离线包
- external排除全局包公共资源比如
react
、react-dom
打包。 - 离线包项目加入配置文件app.config.json,webpack改造
- 敦煌创建cmdb项目加上appid,运维执行npm run build。
为方便劫持网络请求,离线包由file域,变为 https://{appid}.h5app.hupu.com/index.html,其中appid为离线包唯一标识,且10000为全局包
加入全局包离线包
离线包分业务包和全局包。业务包里面放的各个业务的代码,比如说帖子详情、球星页面、某营销活动。全局包是放各个业务包的公用类库部分,比如react、react-dom、@hupu/component 等等。
- h5源代码写成
<script src="{global}/react.js"></script>
- 该代码在离线包环境构建为
<script src="
https://10000.h5app.hupu.com/react.js
"></script>
,native会劫持到1000.h5app.hupu.com这个域名,然后定位到本机的离线包地址里面找相应文件,没找到则降级到cdn地址。 - 该代码在在线环境和本机开发的时候会直接编译成cdn地址,比如
<script src="
https://offline-download.hupu.com/online
/{sit|stg|prod}/
{appid}/
react.js
"></script>