Zazwyczaj w aplikacji Electron można require
moduły węzłów zarówno z głównego procesu i procesu renderer:require() Moduł węzeł z procesu renderer Elektronowej podawane przez HTTP
var myModule = require('my-module');
Jednak nie robi wydaje się działać, jeśli strona została załadowana przez HTTP zamiast z lokalnego systemu plików. Innymi słowy, jeśli otworzyć okno jak poniżej:
win.loadURL(`file://${__dirname}/index.html`);
mogę require
moduł węzła bez problemów. Ale jeśli zamiast otworzyć okno jak poniżej:
win.loadURL(`http://localhost:1234/index.html`);
już nie może require
moduły węzłów wewnątrz mojej stronie internetowej - mam Uncaught Error: Cannot find module 'my-module'
w konsoli strony internetowej. Czy jest jakiś sposób na użycie modułów węzłów na stronie Electron obsługiwanej przez HTTP?
Trochę kontekst: Moja firma jest budowanie aplikacji, która wymaga zdolności do znajdować się jako aplikacja internetowa i wewnątrz muszli Elektronowej. Aby uprościć i uprościć oba środowiska, moja aplikacja Electron uruchamia lokalny serwer internetowy i otwiera aplikację hostowaną pod numerem http://localhost:1234
. Teraz chciałbym dodać do aplikacji możliwość sprawdzania pisowni/pisowni, używając electron-spell-check-provider
. Ten moduł musi zostać zaimportowany i zainicjowany w procesie renderowania, więc próbuję otworzyć na mojej stronie require('electron-spell-check-provider')
, ale to nie powiedzie się z błędem Cannot find module
.
Nie jestem pewien, ale wydaje się, że wersja http pobiera różne rzeczywiste ścieżki dla plików. Spróbuj zmienić instrukcję require przez: => "require (" ./ elektron-sprawdzanie pisowni-dostawcy ")" –
Czy próbowałeś: 'require ('electron') remote.require ('dostawca sprawdzania pisowni elektronów ")'? – ahwayakchih
Czy w końcu to wymyśliłeś? remote.require() działa dla mnie, ale to nie zawsze jest dobre rozwiązanie. W inny sposób to zrobić? – logidelic