electron 插件系统设计记录

简介

为基于electron构建的应用设计一套插件系统。目前逐步设计阶段,欢迎大佬交流、指正。html

分析

如今采用electron构建桌面应用,加上私有模块组件化开发的模式,这种状况下若是一个组件应用于多个项目上,那么更新一个组件后,引用这个组件库的项目就都须要更新它,而后本身构建再发布,用户再去更新,流程应该是这样:git

以上流程看出必定的繁琐,桌面端应用确实避免不了反复的构建与更新。若是像vscodeatom的插件系统来管理插件,一个插件更新后插件系统自动更新插件而无关项目自己是否须要更新,这是一个值得尝试的方向:github

目前插件系统能够参考UI高度定制的atom实现,可是接入到应用实践依然有一些差别须要尝试:app

注入插件方式:electron

  • atom: 制定区域注入(left, status-bar, menu...)
  • app: 自由区域制定插件注入

依赖管理:组件化

  • atom: 开发者客户端,自己有构建环境
  • app: 普通用户环境,重复依赖的处理

形态:atom

  • 独立: 多个独立应用共享独立一个插件系统进行版本检查更新
  • 集中: 多个应用做为模块集中在一个插件系统中

设计

....net

相关文档:

Atom插件化系统是如何实现的?插件

Atom 背后的故事设计

What's the best way to implement a plugin-based application using electron.io?

Visual Studio Code 扩展

VS Code源码简析

How do you make a Plugin/Addons for a Core Electron App?

Github: github.com/yansenlei

相关文章
相关标签/搜索