谷歌插件开发调试"热更新"实现思路

413 阅读1分钟
  • 背景:每一次改代码想要看见效果,都得手动重启插件,再刷新网页,感觉非常麻烦.
  • 目标:开发工具端通知浏览器刷新插件

思路

  1. 开启一个ws服务和一个http服务(提供一个静态网页ws客户端,也可叫插件预览页)
  2. 监听代码变动,用ws推送变动信息给ws客户端
  3. ws客户端监听到代码
  4. 变动消息,执行chrome.runtime.reload,重启插件
  5. 延迟几秒刷新ws客户端,或者手动f5

ps: chrome.runtime.reload不能直接在客户端执行, 可以在Chrome插件单独写一个页面,然后在[ws客户端.html]中open

优化点 浏览器端收到通知重启插件过程有点复杂

- 需要ws网页客户端
- 需要一个可以执行`chrome.runtime.reload()`的单独插件页
  • 链路 代码端 -> ws网页客户端(浏览器) -> 插件(浏览器) 优化 去掉ws网页客户端 代码端 -> 插件(浏览器)