Electron Windows 生产包命令行参数
Electron Windows Production Bundle Command Line Arguments
我正在 macOS 上使用 electron-builder
构建 Electron 应用程序。
在我的代码中,我像这样访问命令行参数:
const cmd = electron.remote.app.commandLine;
const val = cmd.hasSwitch('myArg')
? cmd.getSwitchValue('myArg')
: undefined;
这在提供参数时适用于 macOS 上的生产构建:
./my-electron-app.app/Contents/MacOS/my-electron-app --myArg=foo
// or:
open my-electron-app.app --args -myArg=foo
但是在 Windows 我无法让它工作。
这是我尝试使用 cmd.exe
:
my-electron-app.exe --myArg=foo
my-electron-app.exe -myArg=foo
my-electron-app.exe /myArg=foo
my-electron-app.exe myArg=foo
当记录 electron.remote.process.argv[1]
我可以在 macOS 上看到传递的参数 and Windows, but hasSwitch
和 getSwitchValue
不会给我值。
我做错了什么?或者是否有更好的方法让跨平台命令行参数正常工作?
我猜这是因为你的 switch 中的大写字母。请参阅 this 已关闭的问题:
This is intentional. The hasSwitch
API is a direct wrapper of the Chromium CommandLine class, which behaves this way on purpose.
Switch names must be lowercase.
虽然我还不完全清楚为什么 Mac 没有遇到同样的问题。
我正在 macOS 上使用 electron-builder
构建 Electron 应用程序。
在我的代码中,我像这样访问命令行参数:
const cmd = electron.remote.app.commandLine;
const val = cmd.hasSwitch('myArg')
? cmd.getSwitchValue('myArg')
: undefined;
这在提供参数时适用于 macOS 上的生产构建:
./my-electron-app.app/Contents/MacOS/my-electron-app --myArg=foo
// or:
open my-electron-app.app --args -myArg=foo
但是在 Windows 我无法让它工作。
这是我尝试使用 cmd.exe
:
my-electron-app.exe --myArg=foo
my-electron-app.exe -myArg=foo
my-electron-app.exe /myArg=foo
my-electron-app.exe myArg=foo
当记录 electron.remote.process.argv[1]
我可以在 macOS 上看到传递的参数 and Windows, but hasSwitch
和 getSwitchValue
不会给我值。
我做错了什么?或者是否有更好的方法让跨平台命令行参数正常工作?
我猜这是因为你的 switch 中的大写字母。请参阅 this 已关闭的问题:
This is intentional. The
hasSwitch
API is a direct wrapper of the Chromium CommandLine class, which behaves this way on purpose.
Switch names must be lowercase.
虽然我还不完全清楚为什么 Mac 没有遇到同样的问题。