【问题标题】:Passing command line arguments to electron executable (after installing an already packaged app)将命令行参数传递给电子可执行文件(安装已打包的应用程序后)
【发布时间】:2018-09-08 05:06:33
【问题描述】:

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

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

我错过了什么吗?我认为争论会自动传递给我的电子主进程。

感谢您的帮助。

【问题讨论】:

    标签: electron electron-builder


    【解决方案1】:

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

    渲染器进程,您需要使用remote.process 访问主进程参数:

    require('electron').remote.process.argv
    

    【讨论】:

    • 非常感谢 :) process.argv 实际上返回了一些预定义的参数,这就是为什么我认为它按预期工作的原因。 remote.process.argv返回正确的参数,之前传递给可执行文件。
    • 嗯,process 有时很难理解,因为它是原始 Node.js 的 process 对象(一个用于主进程,一个用于每个渲染器进程)的组合,与来自 Electron 的扩展...
    • 顺便说一句,我编写了 Vade Mecum Shelf Electron 应用程序,其中包含一个 System Information 实用程序:它在工具提示中显示用于获取每条信息的代码,同时将鼠标悬停在每个结果上,包括来自各种过程类别。希望它对其他开发人员也有帮助...
    【解决方案2】:

    https://www.electronjs.org/docs/api/command-line 声明

    (commandLine.appendSwitch(...)) 这不会影响 process.argv。此函数的预期用途是控制 Chromium 的行为。

    因此,只有其他 cmets 中提到的 appp.commandLine.getSwitchValue 允许您获取这些命令行开关

    除了使用开关作为命令行参数外,还支持使用参数。参数在最终命令行中采用“someData”的形式,其中开关采用“--namedParameter=someData”的形式。

    在代码中,commandLine.appendArgument(value) 用于添加参数。这些参数在生成的命令行中的所有开关之前给出。

    它们还旨在影响 Chromium 的行为。再次:

    (commandLine.appendArgument(value)) 注意:这不会影响 process.argv。此函数的预期用途是控制 Chromium 的行为。

    由于该参数没有键,因此似乎无法像使用开关那样直接从代码中读取它。

    https://www.electronjs.org/docs/api/command-line-switches 给出了支持的开关列表。

    【讨论】:

      【解决方案3】:

      在打包电子应用程序源的情况下,可以使用以下函数访问命令行参数。假设我们将命令行参数传递为--myNewArgument=theFancyValue。在ma​​in.js中可以这样检索:

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

      这也适用于开发模式。

      【讨论】:

        猜你喜欢
        • 2016-04-16
        • 1970-01-01
        • 2011-04-01
        • 1970-01-01
        • 2010-11-26
        • 2013-11-21
        • 2010-11-06
        • 2020-01-01
        • 2014-06-19
        相关资源
        最近更新 更多