javascript - 插件系统的 Electron 前端

标签 javascript plugins electron

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

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

Example layout - screenshot

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

通常,这些应用程序不会是图形密集型的东西,并且会以基于事件或用户输入的更新速率进行更多更新,而不是任何需要实现特定 FPS 才能使用的东西。 Electron 是一个好主意,甚至可能吗?有没有人在远程这样的事情上有经验并且可以推荐一个不同的选择? QT 可能吗?

我们的开发经验更侧重于嵌入式应用程序 c/c++ 开发,因此我们对基于 Web 的技术不是非常熟悉,并且正在研究选项。

感谢您的任何意见!

最佳答案

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

  • 处理插件生命周期(例如安装、激活、卸载等)
  • 将插件代码注入(inject)钩子(Hook),同时处理多个插件可能被钩子(Hook)触发的情况。

  • 结果,我为 Electron 创建了一个插件框架。它仍在进行中,但有助于实现上述任务。该项目名为 Pluggable Electron,可在此处找到:https://github.com/dutchigor/pluggable-electron .
    我知道我可能在这里有偏见,但到目前为止,我的经验是,如果您正在寻找构建桌面应用程序并需要插件架构,Electron 是一个不错的选择。有很多应用程序已经实现了这个,比如 VS Code、Atom、Slack 等,所以我认为你的初始方法看起来不错。

    关于javascript - 插件系统的 Electron 前端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59882448/

    相关文章:

    javascript - 在 JavaScript 中使用 Intersection Observer API 检测两个 div 元素之间的碰撞时出现问题

    javascript - jQuery .css ('right' )不工作

    ruby-on-rails - 我如何扩展 acts-as-taggable-on

    java - 在 Maven 插件执行中禁用目标

    javascript - AJAX:将值数组发布到 php

    angular - 如何将动态外部组件加载到 Angular 应用程序中

    javascript - Javascript方法无法从外部样式表中使用- Electron

    javascript - 无法理解 ElectronJS 中 webContents 中的 `sendInputEvent `

    javascript - React - 未捕获的类型错误 : Cannot read property 'state' of > null

    javascript - 将 PHP 重定向到新窗口