如何在Electron中处理面向用户的插件?

时间:2018-11-20 15:35:24

标签: javascript node.js plugins electron

我想在我的Electron应用程序中添加一个插件系统,以便我的用户可以在我的应用程序中添加新功能。我本来以为我可以让用户上传包含插件的.zip,然后将其提取,并要求插件在应用程序中使用它。然后我遇到了这个想法的问题。

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

我不确定该如何处理,我四处寻找类似的情况,但没有找到。我的最终目标是拥有一个在Electron中运行的系统,类似于Wordpress插件的工作方式。

1 个答案:

答案 0 :(得分:1)

您可以将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