不使用GUI运行Electron

问题描述 投票:2回答:1

我看到这个问题has been asked,但问题的背景是不同的,所以没有答案与我的用例相关,所以我问了一个新的问题

我有一个Electron based Web Server。它适用于初学Web开发人员,学生和不熟悉命令行的艺术家(是的,这是一个很大的辩论,但我被加州大学洛杉矶分校艺术与设计学院的老师责骂,要求他们的学生使用命令line,因此是一个带GUI的简单服务器。请不要讨论这一点。这不是问题的重点)

在任何情况下,使用此Web服务器的人有时希望在端口80上运行。在Mac(和Linux?)上,端口80需要管理员权限,因此我想升级服务器的权限来执行此操作。

我的理解是最容易(唯一?)的方法是生成另一个进程。由于我的web服务器的服务器部分是在node.js中有效编写的,并且因为node.js(或者至少是API)内置在Electron中,所以似乎最好的解决方案就是重新生成我的Electron应用程序来运行只有服务器部分。

换句话说,想象一下我可以运行应用程序

/Applications/Servez.app/Contents/MacOS/Servez --no-gui --server-only --port 80

然后我可以在Mac上使用一些spawn命令

/usr/bin/osascript -e '
do shell "/Applications/Servez.app/Contents/MacOS/Servez --no-gui --server-only --port 80" with administrator privileges
'

并且macOS将在运行服务器之前请求管理员权限。

如果我不能在没有GUI的情况下运行Electron,那么我可以在Electron包中包含node.js的副本,但考虑到Electron内部已经有相同的功能,它似乎是一个巨大的浪费空间。或者也许有其他解决方案? (我可以通过一些API调用来请求使用端口80的权限吗?)

macos electron privileges
1个回答
1
投票

设置环境变量ELECTRON_RUN_AS_NODE将运行Electron作为节点,因此我可以在生成Electron时设置该环境变量

© www.soinside.com 2019 - 2024. All rights reserved.