运行 没有 GUI 的 Electron

Run Electron without GUI

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

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

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

我的理解是最简单(唯一?)的方法是生成另一个进程。由于我的网络服务器的服务器部分实际上是用 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 的副本但是这似乎是对 space 的巨大浪费相同的功能已经在 Electron 中。或者也许还有其他解决方案? (我可以打一些 API 电话来请求使用端口 80 的许可吗?)

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