骨架屏插件
骨架屏插件
- 借鉴page-skeleton-webpack-plugin,开发一个vite版插件,暂时未发布
插件实现逻辑
- init阶段
- 插件初始化,生成可接收的本地服务器响应server,初始化socket(连接client中sockjs,并初始化响应代码),响应操作,初始化skeleton对象(操作浏览器视图,及转换)
- vite transformIndexHtml 生命周期中添加script脚本(该脚本可在初始化服务器中响应)
- 运行阶段
- 加载添加的script脚本
- server响应,加载到client中的代码,可以响应
toggleBar
- 通过浏览器控制台输入
toggleBar
,调用client中代码,执行操作,显示html - 点击html中的显示编辑页面,通过SockJS触发sock.send操作
- 响应sockjs,调用skeleton操作,并把页面数据写入sockjs中,最后打开preview页面(编辑页面)
- preview页面获取前面的页面链接,并读取sockjs中的数据,利用iframe分别展示正常页面和骨架屏页面,及代码页面
- 点击写入按钮,可以生成骨架屏html文件
- 待完成
- 在build阶段可以骨架屏html替换
<!-- shell -->
注释,生成最后代码
- 在build阶段可以骨架屏html替换
- init阶段
Skeleton 主要逻辑
- 利用puppeteer控制浏览器
- 利用puppeteer获取页面,通过api调用page,并插入script代码(script/index中Skeleton,为转化标签的代码),并执行,生成骨架代码,写入内存中,等编辑页请求时返回