【问题标题】:How to pass command line argument in electron如何在电子中传递命令行参数
【发布时间】:2015-08-29 04:39:42
【问题描述】:

我刚开始使用电子。当我使用npm start 运行电子时,我对如何在electron 中传递命令行参数存有疑问。

在Node.js 我正在使用:node server.js one two=three four 命令提示符:

var arguments = process.argv.slice(2);
arguments.forEach(function(val,index, array) {
  console.log(index + ': ' + val);
}); 

Node.js 正在工作。我需要知道如何在电子中进行这项工作。

有人可以为此提供解决方案吗?

【问题讨论】:

  • 这是正确的方法,只有你会这样做electron . one two=three four

标签: node.js electron


【解决方案1】:

传递参数的方式是一样的,你唯一需要注意的是电子路径。在package.json 中写入的npm start 将执行electron main.js。因此,您必须显式执行此命令并使用“正确的电子路径”传递参数,即./node_modules/.bin/electron。然后命令将是

./node_modules/.bin/electron main.js argv1 argv2

您可以通过process.argv 在main.js 中访问这些参数

如果您希望在您的应用程序中访问这些参数,则需要执行以下操作:

1.在你的 main.js 中定义一个变量

global.sharedObject = {prop1: process.argv};

2.在您的应用中只需包含远程并使用此sharedObject

const remote = require('electron').remote;
const arguments = remote.getGlobal('sharedObject').prop1;

console.log(arguments);

3.输出将是["argv1", "argv2"]

【讨论】:

  • 可以直接使用require('electron').remote.process.argv获取主进程的参数。
  • 在你的 gui 中调用 remote 时要小心,这可以用作漏洞利用。您的系统api由此暴露。最佳实践是在主进程中访问这些,然后存储到全局变量中,或者使用 IPC 事件推送到您的 gui 中。另请注意,参数应该是不可变的。最好不要改变,如果你必须使用不同的变量,比如你的全局变量..
  • 在我使用电子 v10.x 的情况下,我得到 remote is undefined error in the main process。我可以通过在主进程中安装 Electron 的进程 electronjs.org/docs/api/process 来访问 CLI 参数,您可以通过 const process = require('process'); args = process.argv 访问参数
猜你喜欢
  • 2011-08-22
  • 2016-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-25
  • 1970-01-01
  • 2020-08-27
  • 2016-02-22
相关资源
最近更新 更多