【发布时间】:2018-03-15 05:50:41
【问题描述】:
我有一个电子应用程序,我不仅需要为用户运行界面,还需要启动一个快速服务器,为通过网络连接的人提供文件。
如果我正常启动 electron 和 express 服务器,我一切正常,但我非常有信心,我需要服务器在不同的线程中运行,以避免界面缓慢甚至服务器出现问题。
为此,我尝试使用 child_process.fork 运行我的 express 服务器,并且当我使用 npm start 时它可以工作,但是当我使用 electron-builder 创建一个 .exe 时,安装的程序不会启动 express服务器。
我尝试使用以下命令立即运行我的服务器:
require('child_process').fork('app/server/mainServer.js')
我尝试了几处更改,在文件前面加上__dirname、process.resourcesPath,甚至硬编码生成的文件路径;更改 fork 选项以通过 cwd: __dirname、detached: true 和 stdio: 'ignore';甚至尝试将spawn 与process.execPath 一起使用,这也可以与npm start 一起使用,但打包时不会(它会不断打开我的应用程序的新实例,在你这样做之后似乎很明显)
注意:如果我不立即 fork 并要求服务器脚本,则使用 require('server/mainServer.js') 它适用于打包的应用程序,因此最可能的问题不是 express 本身。
注意2:我有asar: false来解决其他问题,所以这不是这里的问题解决者。
我建立了一个小 git 项目来展示我的问题:
https://github.com/victorivens05/electron-fork-error
我们将不胜感激。
【问题讨论】:
标签: node.js express electron child-process