javascript - 将电子进程作为普通节点进程运行?
问题描述
我使用 electron-packager 打包了电子应用程序,我想在任何没有安装节点的 mac 上运行这个应用程序。有人建议我使用电子打包程序将节点捆绑到我的应用程序中,但是当我尝试在 Mac 上启动它时,我收到“找不到节点命令错误”。
我得到这个是因为我在我的应用程序中调用了一个执行节点命令来运行脚本的子进程。在电子松弛中,建议我通过设置环境变量 ELECTRON_RUN_AS_NODE 将电子进程作为普通节点进程运行。我无法弄清楚我可以在哪里以及如何设置它,关于如何做到这一点的任何想法?另外,这样能解决问题吗?
解决方案
可以使用“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 上运行该应用程序。
推荐阅读
- javascript - TicTacToe 按钮一直以直线而不是网格显示
- c++ - 我是否以错误的方式声明了 getpriorityvalues 函数?
- python - 如何在等待计时器完成时在 shell 中输入?
- flutter - WillPopScope 导航页面变化 Flutter
- python - 检查周围的地雷扫雷pygame?
- azure - Azure 翻译文本
- r - 为什么我的有效正则表达式模式在 R 中不起作用
- javascript - 打印带有索引和值的数组元素
- python - 无法在项目源代码中停止循环
- tensorflow-datasets - 查询 Tensorflow 数据集的结构——行、列、形状