node js 的生成过程在生产模式下的电子应用程序中给出错误

问题描述 投票:0回答:1

我正在使用 React 开发一个电子应用程序,我有一个 python 文件,我想通过电子的主进程运行它。

我正在使用 Node js 的

child-process
来生成 python exe(esic.exe) 文件。我使用 pyinstaller 创建了 python exe 文件,它在独立模式下运行良好。

const exeLocation = path.join(__dirname, 'dist/esic.exe')
const process = spawn(exeLocation, [args])

在开发模式下,一切运行正常,电子的主进程可以生成进程并发送参数并接收输出,但是一旦我使用

electron-builder
打包电子应用程序,它就会给我这个
ENOENT
代码错误

我搜索了

ENOENT
错误,发现该错误表明文件系统中不存在文件或目录的指定路径,因此我尝试解包具有
app.asar
文件的 Electron 构建。在解压 asar 文件时,我发现它包含 dist 目录,并且其中有一个 esic.exe 文件,这意味着 electro-builder 正确打包了构建。

现在我完全困惑为什么它在开发模式下运行而不是在生产模式下运行。

javascript node.js electron electron-builder
1个回答
0
投票

将exe文件放在app.asar外面,并将spawn的第三个参数设置为{shell: true}

© www.soinside.com 2019 - 2024. All rights reserved.