簡介
為基於
electron
構建的應用設計一套外掛系統。目前逐步設計階段,歡迎大佬交流、指正。
分析
現在採用electron
構建桌面應用,加上私有模組元件化開發的模式,這種情況下如果一個元件應用於多個專案上,那麼更新一個元件後,引用這個元件庫的專案就都需要更新它,然後自己構建再發布,使用者再去更新,流程應該是這樣:
以上流程看出一定的繁瑣,桌面端應用確實避免不了反覆的構建與更新。如果像vscode
、 atom
的外掛系統來管理外掛,一個外掛更新後外掛系統自動更新外掛而無關專案本身是否需要更新,這是一個值得嘗試的方向:
目前外掛系統可以參考UI高度定製的atom實現,但是接入到應用實踐依然有一些差異需要嘗試:
注入外掛方式:
- atom: 制定區域注入(left, status-bar, menu...)
- app: 自由區域制定外掛注入
依賴管理:
- atom: 開發者客戶端,本身有構建環境
- app: 普通使用者環境,重複依賴的處理
形態:
- 獨立: 多個獨立應用共享獨立一個外掛系統進行版本檢查更新
- 集中: 多個應用作為模組集中在一個外掛系統中
設計
...
相關文件:
What's the best way to implement a plugin-based application using electron.io?
How do you make a Plugin/Addons for a Core Electron App?