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

相關文章
相關標籤/搜索