简介
为基于
electron
构建的应用设计一套插件系统。目前逐步设计阶段,欢迎大佬交流、指正。
分析
现在采用electron
构建桌面应用,加上私有模块组件化开发的模式,这种情况下如果一个组件应用于多个项目上,那么更新一个组件后,引用这个组件库的项目就都需要更新它,然后自己构建再发布,用户再去更新,流程应该是这样:
以上流程看出一定的繁琐,桌面端应用确实避免不了反复的构建与更新。如果像vscode
、 atom
的插件系统来管理插件,一个插件更新后插件系统自动更新插件而无关项目本身是否需要更新,这是一个值得尝试的方向:
目前插件系统可以参考UI高度定制的atom实现,但是接入到应用实践依然有一些差异需要尝试:
注入插件方式:
- [ ] atom: 制定区域注入(left, status-bar, menu…)
- [x] app: 自由区域制定插件注入
依赖管理:
- [ ] atom: 开发者客户端,本身有构建环境
- [x] app: 普通用户环境,重复依赖的处理
形态:
- [ ] 独立: 多个独立应用共享独立一个插件系统进行版本检查更新
- [ ] 集中: 多个应用作为模块集中在一个插件系统中
设计
…
相关文档:
What’s the best way to implement a plugin-based application using electron.io?