Огромное спасибо Сэмюэлю.
я есть электронное приложение, в котором мне нужно не только запустить интерфейс для пользователя, но и запустить экспресс-сервер, который будет обслуживать файлы для людей, подключенных через сеть.
У меня все работает, если я нормально запускаю и электронный, и экспресс-сервер, но я уверен, что мне понадобится сервер, работающий в другом потоке, чтобы избежать вялого интерфейса и даже проблем с сервером.
В связи с этим я попытался запустить мой экспресс-сервер, используя child_process.fork, и он работал, когда я используюnpm start
, но когда я используюelectron-builder
чтобы создать .exe, установленная программа не запускает экспресс-сервер.
Я попытался запустить свой сервер сразу, используя:
require('child_process').fork('app/server/mainServer.js')
Я попытался несколько изменений, префикс файла с__dirname
, process.resourcesPath
и даже жесткое кодирование сгенерированного пути к файлу; изменение параметров вилки для передачиcwd: __dirname
, detached: true
а такжеstdio: 'ignore'
; и даже пытался использоватьspawn
с участиемprocess.execPath
, который также будет работать сnpm start
но не будет, когда упаковано (оно продолжает открывать новые экземпляры моего приложения, кажется очевидным после того, как вы сделаете хе-хе)
Примечание: если я не разветвляюсь и сразу требую серверный скрипт, используюrequire('server/mainServer.js')
он работает в упакованном приложении, поэтому больше всего проблема заключается не в самом экспрессе.
Примечание 2: у меня естьasar: false
чтобы решить другие проблемы, так что это не решатель проблем здесь.
Я создал небольшой проект git, чтобы показать мою проблему:
https://github.com/victorivens05/electron-fork-error
Любая помощь будет высоко оценена.