Electron plug-in system design record

Now use electron to build a desktop application, plus the pattern of component development of private modules. In this case, if a component is applied to multiple projects, after updating a component, the project that references the component library needs to update it. Self-build and re-release, users then update, the process should be like this:


The above process shows that certain cumbersome, desktop applications can not avoid repeated builds and updates. If the plugin system like vscode, atom manages the plugin, the plugin system automatically updates the plugin after a plugin is updated, and there is no need to care whether the project itself needs to be updated. This is a worthwhile direction:

At present, the plug-in system can refer to the highly customized atom implementation of the UI, but there are still some differences in the application to the application:

Inject plugin method:

Atom: formulate area injection (left, status-bar, menu…)
App: free area to develop plugin injection
Dependency management:

Atom: developer client, which has a build environment
App: normal user environment, repeated dependency processing

Independent: Multiple independent applications share a single plug-in system for version check updates
Centralized: Multiple applications as modules are concentrated in one plugin system

do you have any good advice? Welcome your guidance and communication.

Github: https://github.com/yansenlei
Email: leiyswork@gmail.com