electron 外掛系統設計記錄

Leiys發表於2018-12-17

簡介

為基於electron構建的應用設計一套外掛系統。目前逐步設計階段,歡迎大佬交流、指正。

分析

現在採用electron構建桌面應用,加上私有模組元件化開發的模式,這種情況下如果一個元件應用於多個專案上,那麼更新一個元件後,引用這個元件庫的專案就都需要更新它,然後自己構建再發布,使用者再去更新,流程應該是這樣:

electron 外掛系統設計記錄

以上流程看出一定的繁瑣,桌面端應用確實避免不了反覆的構建與更新。如果像vscodeatom的外掛系統來管理外掛,一個外掛更新後外掛系統自動更新外掛而無關專案本身是否需要更新,這是一個值得嘗試的方向:

electron 外掛系統設計記錄

目前外掛系統可以參考UI高度定製的atom實現,但是接入到應用實踐依然有一些差異需要嘗試:

注入外掛方式:

  • atom: 制定區域注入(left, status-bar, menu...)
  • app: 自由區域制定外掛注入

依賴管理:

  • atom: 開發者客戶端,本身有構建環境
  • app: 普通使用者環境,重複依賴的處理

形態:

  • 獨立: 多個獨立應用共享獨立一個外掛系統進行版本檢查更新
  • 集中: 多個應用作為模組集中在一個外掛系統中

electron 外掛系統設計記錄

設計

...

相關文件:

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

相關文章