javascript - 我应该如何处理 Electron 中面向用户的插件?

标签 javascript node.js plugins electron

我想向我的 Electron 应用程序添加一个插件系统,以便我的用户可以向我的应用程序添加新功能。我最初的想法是让我的用户上传一个包含插件的 .zip,然后它会解压,并要求该插件在应用程序中使用它。然后我遇到了这个想法的问题。

  1. 由于我无法使用 npm(例如 lodash),我应该如何处理具有依赖项的插件?
  2. 如何为插件提供要使用的 API(例如获取应用程序主题或资源名称)

我不知道如何处理这个问题,我已经四处寻找类似的案例,但还没有找到。我的最终目标是拥有一个在 Electron 中工作的系统,类似于 Wordpress 插件的工作方式。

最佳答案

您可以使用 npm 作为子进程。

您可以实现自己的:

require('child_process').exec(
  'npm ...',
  { maxBuffer: 1024 * 500 },
  function (error, stdout, stderr) {
    var response = JSON.parse(stdout).dependencies;
    ...
  }
);

或使用库,例如​​:https://github.com/getstation/electron-package-manager

关于javascript - 我应该如何处理 Electron 中面向用户的插件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53396434/

相关文章:

vue.js - vue + nuxt js - 如何访问服务器端插件中的上下文?

javascript - Chrome 扩展 - 当浏览器在后台打开时打开新选项卡 (Mac)

javascript - 为日期选择器选择在 js 中可选择的日期

javascript - 带标签的 Kendo 图表模板,内部显示 html 标签

node.js - node-dev 未被识别为内部或外部命令

php - WooCommerce - 新的运输方式 - 如何查询单个产品重量

javascript - React Native - 在 AppDelegate (iOS) 中将事件从 Native 发送到 JavaScript

javascript - 是否可以使 mongoDb objectId 大于 24 个字符?

javascript - 使用存储查找字符串的数组和存储替换字符串的数组替换文件中的字符串

javascript - 命名空间 QScriptEngine 扩展