Как правило, в приложении Electron, вы можете require
узловых модулей как из основного процесса и процесса рендеринга:требуют() модуль узла от процесса визуализатора Electron служил над HTTP
var myModule = require('my-module');
Однако это не похоже, работают, если страница была загружена через HTTP, а не из локальной файловой системы. Другими словами, если открыть окно, как это:
win.loadURL(`file://${__dirname}/index.html`);
Я могу require
модуль узла без проблем. Но если я вместо того, чтобы открыть окно, как это:
win.loadURL(`http://localhost:1234/index.html`);
я больше не могу require
узловые модули внутри моей веб-страницы - я Uncaught Error: Cannot find module 'my-module'
в консоли веб-страницы. Есть ли способ использовать узловые модули на странице Electron, которая была передана через HTTP?
Немного контекст: Моя компания строит приложение, которое должно способность быть организовано как веб-приложение и внутри оболочки в Electron. Чтобы сделать это более простым и последовательным в обеих средах, приложение Electron запускает локальный веб-сервер и открывает приложение, размещенное на http://localhost:1234
. Теперь мне бы хотелось добавить в приложение приложение для проверки орфографии/орфографии, используя electron-spell-check-provider
. Этот модуль необходимо импортировать и инициализировать внутри процесса рендеринга, поэтому я пытаюсь сделать require('electron-spell-check-provider')
внутри моей веб-страницы, но это не с ошибкой Cannot find module
.
Я не уверен, но похоже, что http-версия получает некоторые разные фактические пути для файлов. Попробуйте изменить инструкцию require: => «require (« ./ электрон-spell-check-provider-provider »)« –
Вы пробовали: 'require ('электрон'). Remote.require ('электронный-ордер-чек-провайдер ') '? – ahwayakchih
Вы в конечном итоге выяснили это? remote.require() работает для меня, но это не всегда хорошее решение. Любой другой способ сделать это? – logidelic