Как внедрить плагины в приложение Electron? - PullRequest
0 голосов
/ 12 сентября 2018

Я ищу способ реализации «плагинов» для моего инструмента Electron.

Ниже приведен псевдо-пример того, как я думаю, что это будет работать

Поставка .js / .zip / файла плагина

Файл будет содержать имя плагина и его категорию (Global, Team centric, Misc)

Файл будет содержать HTML для GUI, который помещается в div, предназначенный для пространства инструментов. Это имя будет добавлено в качестве опции к необходимому Select, а также добавлена ​​логика для перетаскивания HTML в тот же div

В инструменте выберите файл плагина: страница загрузит скрипт JavaScript и добавит опцию для выбора вместе с логикой для переключения на плагин

Надежда состоит в том, чтобы автоматизировать мой текущий процесс. В настоящее время я вручную обновляю страницу индекса, чтобы ссылаться на новый скрипт JavaScript, и чтобы добавить опцию на выбор В JavaScript Script есть логика, которая смотрит на Select и смотрит, была ли выбрана эта опция. который затем извлекает свой собственный HTML через функцию в

Есть что-нибудь, на что я могу ссылаться / использовать, чтобы сделать эту работу?

Ответы [ 2 ]

0 голосов
/ 05 июля 2019

Я разработал электронное приложение, используя vue в качестве внешнего интерфейса.

Моя идея заключалась в разработке плагинов в качестве плагинов vue и публикации через npm.

Я использовал live-plugin-manager для установки и удаления плагинов.

Зависимости были автоматически удалены с помощью счетчика

Единственная проблема, с которой я столкнулся, заключалась в том, как загрузить эти установленные плагины в мое основное приложение.

Обходной путь, который я нашелбыл опубликован как ответ на мой собственный вопрос на Как использовать электрон для загрузки динамически установленных плагинов в папку плагинов

Надеюсь, это поможет

0 голосов
/ 07 января 2019

После 4 с лишним месяцев работы над этим мне удалось заставить это работать. Я постараюсь изложить свой подход.

  • Каждый «плагин» или «инструмент» должен иметь свой собственный файл .js
  • файл js должен содержать функцию exports.html, которая будет возвращать html для инструмента
  • файл js должен содержать функцию exports.Events, которая добавляет все соответствующие прослушиватели событий
  • создать файл json, каталогизирующий каждый инструмент, вместе с необходимой информацией, то есть описанием, путем к изображению, путем к файлу .js и т. Д.
  • при выборе файла .js требуется загрузить html и события
  • парсит json, чтобы выяснить, какой инструмент загрузить вместе с необходимой информацией

все, что мне нужно сделать, это обновить файл json и загрузить файл .js, чтобы добавить новый плагин.

...