Mam aplikację elektronową, w której potrzebuję nie tylko uruchomić interfejs użytkownika, ale także uruchomić serwer ekspresowy, który będzie obsługiwał pliki dla osób podłączonych przez sieć.child_process.fork nie uruchamia serwera ekspresowego wewnątrz aplikacji pakietu elektronowego
Mam wszystko działa poprawnie, jeśli uruchomię normalnie zarówno elektron, jak i ekspresowy serwer, ale jestem całkiem pewny, że będę potrzebował serwera działającego w innym wątku, aby uniknąć powolnego interfejsu, a nawet problemów z serwerem.
Z tego powodu próbowałem uruchomić mój ekspresowy serwer przy użyciu pliku child_process.fork i działało, gdy używam npm start
, ale kiedy używam electron-builder
do utworzenia .exe, zainstalowany program nie uruchamia serwera ekspresowego.
Próbowałem uruchomić mój serwer od razu przy użyciu:
require('child_process').fork('app/server/mainServer.js')
próbowałem kilka zmian, poprzedzając plik z __dirname
, process.resourcesPath
i nawet ciężko kodowania wygenerowaną ścieżkę; zmiana opcji widełek na cwd: __dirname
, detached: true
i stdio: 'ignore'
; i nawet spróbował wykorzystać spawn
z process.execPath
, który będzie również współpracować z npm start
ale nie gdy są pakowane (Utrzymuje otwieranie nowych wystąpień mojej aplikacji, wydaje się oczywiste po wykonaniu hehe)
Uwaga: Jeśli nie widelec i Wymagaj skryptu serwera od razu, używając require('server/mainServer.js')
działa on w aplikacji pakietu, więc problem najbardziej nie jest sam express.
Uwaga 2: Mam asar: false
do rozwiązywania innych problemów, więc nie jest to rozwiązanie problemu tutaj.
kładę się mały projekt git pokazać mój problem:
https://github.com/victorivens05/electron-fork-error
Każda pomoc będzie bardzo mile widziane.