我'm doing long-running computations in an electron app. I' m "forking"节点进程使用child_process.fork在单独的进程中执行脚本而不阻止渲染器进程 .
该应用程序工作正常,前提是我正在使用child_process.fork启动的脚本位于我喜欢的目录中,而是将脚本发送到二进制文件中(我使用electron-builder来构建一个) .
我感兴趣的是 .asar
存档 - 可以在运行时由二进制文件访问吗?
child_process.spawn并使用JS以外的语言也是一种选择,但问题仍然存在 - 我不知道如何将脚本嵌入到二进制文件中 .
1 回答
由于this response from another question,我解决了这个问题 .
我已经添加
到
webpack.config.js
并使用process.resourcesPath
来解析文件路径 .child_process.fork可以使用asar库,如果在asar存档中提供了脚本路径 . 为了实现这一点,我大致使用了
另一方面,child.execFile可以利用asar库来生成asar存档中包含的二进制文件的进程 . 请注意,它只能解析二进制文件,而不能解析其参数,因此如果您想在电子应用程序中嵌入Python解释器和Python脚本,则应将其打包在单个二进制文件中,或者将脚本解压缩到文件系统并执行使用嵌入式Python二进制文件或将其内容加载到变量并使用
python -c "print(44)"
直接执行,并将脚本内容作为-c
参数参数 .