目前还是使用比较原始的方式开发,就是写好代码后打包,然后更新插件,这样是比较麻烦的。
想问一下在浏览器插件开发中现在有没有比较成熟的方案,可以实现开发的热更新
我目前用 Vite + @crxjs/vite-plugin,效果还不错,可以实现热更新。
不过当 manifest 更新的时候可能需要手动加载刷新。
一般来说,浏览器插件开发要做到热更新,可以利用WebSocket 或者 HTTP/2 协议进行实时通信,以实现代码或配置的热更新。以下是详细的方法:
WebSocket 是一种网络通交互协议,允许服务器与客户端之间进行全双工通信。你可以建立一个 WebSocket 服务器,插件定期通过 WebSocket 向服务器发送心跳包,保持与服务器之间的连接。当服务器有新的代码或配置需要更新时,可以发送一个包含新代码或配置的消息给客户端。客户端在接收到消息后,可以使用动态加载 JavaScript 或 JSON 的方式来更新插件的代码或配置。
这种方法的优点是实时性比较高,能够在服务器有更新时立即推送给客户端。但是,这种方法也有一些局限性,例如 WebSocket 连接可能会因为各种原因断开,所以需要设计好重连机制。
HTTP/2 是 HTTP 的升级版,它引入了服务器推送(Server Push)的特性。你可以利用这个特性,当服务器有新的代码或配置时,主动推送给客户端。客户端在接收到消息后,同样可以使用动态加载 JavaScript 或 JSON 的方式来更新插件的代码或配置。
这种方法的优点是能够在服务器有更新时就推送给客户端,而且不需要建立额外的连接。但是,这种方法也有一些局限性,例如 HTTP/2 的服务器推送可能会因为各种原因失败,所以需要设计好重试机制。
以上两种方法都需要考虑如何处理不同版本之间的差异,以及如何保证更新的原子性。同时,你还需要考虑如何防止恶意用户通过更新代码或配置来破坏你的插件。因此,在实现热更新时,需要谨慎考虑各种可能的问题,并设计好相应的解决方案。
可以使用 react 或者是 vue 进行开发,对插件 API 提供类型支持
问题内容: 我正在从Firefox 3.5开始为新服务开发Web应用程序。 界面设计是无表的,仅使用divs + CSS和性能良好的做法。 现在,尽管与Safari兼容仅花费了很少的时间,但IE还是很痛苦。 我的问题是:有什么可以用来加速跨浏览器检查的吗?例如,我已经知道FF和IE之间的许多区别,但是使用特定工具可能会有所帮助。 你能建议一个吗? 谢谢, 猩红 问题答案: 跨浏览器开发 没有工具可
问题内容: 您如何确定用户是否按下浏览器中的“后退”按钮? 您如何使用系统在单页Web应用程序内强制使用页内后退按钮? 到底为什么浏览器后退按钮不触发自己的事件!? 问题答案: (注意:根据Sharky的反馈,我提供了用于检测退格的代码) 因此,我经常在SO上看到这些问题,并且最近遇到了我自己控制后退按钮功能的问题。在为我的应用程序寻找最佳解决方案(带哈希导航的单页)几天后,我提出了一个简单的,跨
chrome插件开发怎么做热更新? 每次都要build一下后,插件才能更新,太不方便了,有什么办法解决?
使用vue3项目,我想关闭浏览器或者关闭浏览器的标签页清除token,该怎么操作
我今天发现一个奇怪的问题,下面这个网址(是个时间戳转换的页面): https://www.phpernote.com/web_tools/unix-timestamp.html 比如这个时间戳:1686153600 在 360 浏览器下和chrome下格式化后显示的日期竟然不一样,360下是:2023-06-08 00:00:00,而chrome下竟然是:2023-06-07 16:00:00,头