将命令行参数传递给electron可执行文件(安装已打包的应用程序后)

将命令行参数传递给electron可执行文件(安装已打包的应用程序后),electron,electron-builder,Electron,Electron Builder,我正在尝试在执行时将命令行参数传递给已经打包的应用程序。 (已与electron builder打包并在我的mac上安装了.dmg) 我导航到应用程序可执行文件所在的/Applications/myApp.app/Contents/MacOS文件夹。然后我就跑。 exec myApp--myNewArgument theFancyValue 由于某些原因,“myNewArgument”没有出现在my process.argv数组中 我遗漏了什么吗?我想这些争论会自动地传递到我的电子主进程中 非常

我正在尝试在执行时将命令行参数传递给已经打包的应用程序。 (已与electron builder打包并在我的mac上安装了.dmg)

我导航到应用程序可执行文件所在的
/Applications/myApp.app/Contents/MacOS
文件夹。然后我就跑。
exec myApp--myNewArgument theFancyValue
由于某些原因,“myNewArgument”没有出现在my process.argv数组中

我遗漏了什么吗?我想这些争论会自动地传递到我的电子主进程中


非常感谢您的帮助。

是的,传递的命令行参数出现在
进程.argv
数组中,但仅出现在主进程中

从渲染器进程
,您需要使用以下命令访问主进程参数:


对于打包的electron应用程序源,可以使用以下函数访问命令行参数。假设我们将命令行参数传递为
--myNewArgument=theFancyValue
。可以在main.js中这样检索它:

import { app } from "electron";
app.commandLine.getSwitchValue("myNewArgument");

这也适用于开发模式。

非常感谢:)
process.argv
实际上返回一些预定义的参数,这就是为什么我认为它可以按预期工作的原因
remote.process.argv
返回以前传递给可执行文件的正确参数。
process
有时很难理解,因为它是原始Node.js
process
对象(一个用于主进程,一个用于每个渲染器进程)的组合,带有来自Electron的扩展…顺便说一句,我编写了包含一个实用程序的Electron应用程序:它在工具提示中显示用于获取每条信息的代码,同时将鼠标悬停在每个结果上,包括来自各种流程类别的代码。希望它也能对其他开发人员有所帮助。。。
import { app } from "electron";
app.commandLine.getSwitchValue("myNewArgument");