quickappcn / issues

快应用开发问题反馈和需求征集
27 stars 2 forks source link

建议提供一个能构建web预览模块(非构建临时中间文件)的方法 #147

Open wibetter opened 2 years ago

wibetter commented 2 years ago

toolkit

需求描述

建议提供一个能构建web预览模块(非构建临时中间文件)的cli或者npm工具,目前快应用开发工具(hap-toolkit)中的hap server和hap build都会生成一份临时构建中间文件,但不能直接嵌入到浏览器端第三方页面中使用(预览)。期望能出一个将build后的文件转成普通html内容的方法。

需求场景

开发快应用自定义组件需要,开发快应用组件的时候,需要构建一份web预览模块,在其他普通浏览器页面中展示效果。

参考

联系方式和应用名

365533093@qq.com

wibetter commented 2 years ago

看了一下hap-toolkit预览相关功能代码,发现了一些问题如下: 1、hap-toolkit 构建的 web模块 是一种构建中间产物(后续统一称「web预览模块」),不能直接放浏览器直接使用(需借助 haptoolkit 中的 web.js 预览)。比如 css文件是以json对象形式存储,需要再进行一次解释,其他内容类似。其中rpk文件和build是同一文件内容(只是将build压缩成rpk文件),是同一个构建中间产物; 2、web预览模块 需要使用 hap-toolkit 中的 web.js 在浏览器端预览,但其并未开源(hap-toolkit/hap-server/lib/preview/static/web.js); 3、web.js 经分析发现,其解释 web预览模块 时会使用到 window.location.pathname 解析路由路径,在第三方平台中使用还需要按照设置指定的路由路径,不方便在同一个页面放置多个快应用组件中,是否可以考虑在Hap._initLocationParser增加一个参数从外部优先获取卡片组件跟路径。另外发现 web.js 预览快应用组件时会清空 body 下所有 dom,会导致页面内其他内容被清空,也是一个比较严重的问题点。