将电子进程作为普通节点进程运行?

koh*_*ohl 4 javascript child-process node.js electron electron-packager

我有我使用电子打包器打包的电子应用程序,我想在任何没有安装节点的 Mac 上运行这个应用程序。有人建议我电子打包器将节点捆绑到我的应用程序中,但是当我尝试在 mac 上启动它时,我收到“找不到节点命令错误”。

我得到这个是因为我在我的应用程序中调用了一个执行节点命令来运行脚本的子进程。在电子松弛中,我被建议通过设置环境变量 ELECTRON_RUN_AS_NODE 将我的电子进程作为普通节点进程运行。我不知道在哪里以及如何设置它,关于如何做到这一点的任何想法?另外,这能解决问题吗?

koh*_*ohl 6

可以使用“fork”方法来运行节点进程,这甚至可以在没有安装节点的机器上运行。在这种情况下,'Fork' 方法使用父进程的可执行路径电子应用程序。fork 方法的示例代码如下:

const child = childProcess.fork(path, args, {
    silent: true,
    detached: true,
    // stdio: 'ignore',
    env: {
        ELECTRON_RUN_AS_NODE:1
    }
});
Run Code Online (Sandbox Code Playgroud)

还要设置“ELECTRON_RUN_AS_NODE”环境变量。这对我有用,我能够在没有安装节点的 Mac 上运行该应用程序。