欢迎前往体验 rubick
刚开始设计插件管理的方式是将插件打包成 .zip
的压缩包,然后再将压缩包上传到 CDN
上,点击安装再 download
下来进行解压。但是这样有几个弊端
直到我看到 PicGo 作者关于 PicGo 插件设计思路的文章,我突然觉得基于 npm
的包管理方式不正是我想要的吗,既轻量有省了一笔服务器存储开销: PicGo 插件设计 但这其实也有另一个问题,因为是基于 npm
的管理模式,所以需要开发者提前安装 node
环境,才可以使用 npm
。但这在目前是可以接受的,因为 Rubick
的目前定位也是为开发者服务的开源工具箱。
当你点安装插件的时候,其实执行的就是 npm install xxx
.
Rubick
另一个最大的能力就是支持系统插件,有了系统插件,我们就可以不用受限于必须搜索使用插件了,只要 rubick
在运行,插件就在运行。这对于一些特殊的场景来说是非常有价值的事情,比如我要实现一个定时提醒喝水的插件,如果我退出了插件界面,可能就无法实现。但是要做成了系统插件,即使退出了插件,但rubick
依旧会在后台运行插件提供的hooks
。这个灵感也是来自于 PicGo
的插件生命周期设计。下面来演示系统插件:
有了系统插件,我们就可以实现 屏幕取色插件
、定时提醒插件
、超级面板插件
... 另外,由于 rubick
的系统插件是运行在 main
进程的,所以,我们可以通过系统插件做到更多的能力,比如把 rubick
就看出是 electron
的二次封装,不需要任何 electron
的构建打包,基于系统插件,我们可以实现另一个桌面端应用!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.