Javascript 插件系统的电子前端

Javascript 插件系统的电子前端,javascript,plugins,electron,Javascript,Plugins,Electron,我们遇到了一个大问题——10亿个分散在多个平台上的工具使得维护和分发变得困难,或者让新员工跟上速度,交付等等 其想法是尝试将所有这些整合到一个中央存储库中,该存储库可由前端GUI系统访问,其中所有这些工具和服务都是该GUI系统的插件 我们将为插件创建者定义接口/挂钩/回调,以使用前端的这些通用区域将其特定于应用程序的数据放入。例如,当应用程序作为插件安装并在“已安装的应用程序”区域中选择时,将调用该应用程序,并使用定义良好的界面使用其应用程序特定的数据更新菜单栏、工具栏、控制台等,然后在主“渲

我们遇到了一个大问题——10亿个分散在多个平台上的工具使得维护和分发变得困难,或者让新员工跟上速度,交付等等

其想法是尝试将所有这些整合到一个中央存储库中,该存储库可由前端GUI系统访问,其中所有这些工具和服务都是该GUI系统的插件

我们将为插件创建者定义接口/挂钩/回调,以使用前端的这些通用区域将其特定于应用程序的数据放入。例如,当应用程序作为插件安装并在“已安装的应用程序”区域中选择时,将调用该应用程序,并使用定义良好的界面使用其应用程序特定的数据更新菜单栏、工具栏、控制台等,然后在主“渲染窗口”中渲染自身

通常,这些应用程序不会是图形密集型应用程序,而是会以基于事件或用户输入的更新速率进行更多更新,而不是任何需要实现特定FPS才能使用的应用程序。电子是一个好主意还是可能?有没有人有过类似的经验,可以推荐一个不同的选择?也许吧

我们的开发经验更注重嵌入式应用程序c/c++开发,因此我们对基于web的技术不太熟悉,正在研究各种选项


谢谢你的意见

我目前正在从事一个项目,我计划实施类似的方法,也使用Electron。我发现这种方法有两个主要挑战:

  • 处理插件生命周期(如安装、激活、卸载等)
  • 将插件代码注入钩子,同时处理钩子可能触发多个插件的情况
因此,我为Electron创建了一个插件框架。这项工作仍在进行中,但有助于完成上述任务。该项目名为Pluggable Electron,可在此处找到:


我知道我在这里可能有偏见,但到目前为止,我的经验是,如果你想构建一个桌面应用程序并需要插件架构,Electron是一个不错的选择。有很多应用程序已经实现了这一点,比如VS代码、Atom、Slack等。因此我认为您最初的方法看起来不错。

这种方法没有什么错,但使用过度广义的解决方案通常会限制您的使用。也就是说,如果未来的插件不太适合该布局/限制,该怎么办。这就是说,electron可以做到这一点,就像任何其他具有适当gui依赖关系的语言一样。这实际上取决于基于开发人员的语言经验,更容易创建和维护什么。