首页 > 解决方案 > 我应该如何在 Electron 中处理面向用户的插件?

问题描述

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

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

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

标签: javascriptnode.jspluginselectron

解决方案


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


推荐阅读