首页 > 解决方案 > 将电子进程作为普通节点进程运行?

问题描述

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

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

标签: javascriptnode.jselectronchild-processelectron-packager

解决方案


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

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

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


推荐阅读