gpt4 book ai didi

electron - 如何在 Electron 二进制文件中嵌入脚本?

转载 作者:行者123 更新时间:2023-12-03 12:24:34 25 4
gpt4 key购买 nike

我正在 Electron 应用程序中进行长时间运行的计算。我正在使用child_process.fork“ fork ”节点进程,以在单独的进程中执行脚本,而不是阻止渲染器进程。

如果我使用child_process.fork启动的脚本位于要从其启动的目录中,则该应用程序运行良好。我想做的是将脚本运送到二进制文件中(我使用electron-builder构建一个脚本)。

我发现,该构建器将所有内容(包括我感兴趣的脚本)打包到.asar归档文件中-二进制文件可以在运行时对其进行访问吗?

child_process.spawn和使用JS以外的语言也是一种选择,但是问题仍然存在-我不知道如何将脚本嵌入到二进制文件中。

最佳答案

我通过this response from another question解决了这个问题。

我已经添加

node: {
__dirname: true,
},

webpack.config.js并使用 process.resourcesPath解析文件路径。

如果在asar归档文件中提供了脚本路径,则 child_process.fork可以利用 asar库。为了达到这个目的,我粗略地使用了
import path from 'path';
import { fork } from 'child_process';

const scriptPath = path.join(process.resourcesPath!, 'app.asar', fileName);
const args = [];
const process = fork(scriptPath, args);

另一方面, child.execFile可以利用asar库生成asar存档中包含的二进制文件的过程。请注意,它只能解析二进制文件,而不能解析其参数,因此,如果要在 Electron 应用程序中嵌入Python解释器和Python脚本,则应将其打包为单个二进制文件或将脚本提取到文件系统中并执行使用嵌入式Python二进制文件或将其内容加载到变量中,然后直接使用 python -c "print(44)"并将脚本内容作为 -c参数参数执行。

关于electron - 如何在 Electron 二进制文件中嵌入脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52369868/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com